tad CMB2 fields getting its first utility function

A utility addition to CMB2 additional fields.

Getting those values out

I’ve just begun using the Custom Meta Boxes 2 fields, the nestable list especially, and found the need to get the values out of the meta the list is saving and doing it in a way that’s use oriented and not integrity oriented.
To be able to do that I’ve added the functions file to the repository that is adding, now, just the function below

/**
 * Extracts the elements unique keys for a list level.
 *
 * @param        $post_id   The ID of the post to which the nestable list is a meta.
 * @param        $meta_key  The meta key the nestable list is saved in
 * @param string $key       The name of the unique key used in the list, defaults to 'id'
 * @param null   $key_value The optional unique key value to grab deeper than root elements.
 *
 * @return array An array of unique key values.
 */
function tad_extract_keys_from_list( $post_id, $meta_key, $key = 'id', $key_value = null );

given a value saved by a nestable list in the format, once json_decoded, below

array(
    array(
        'id'   => 1,
        'text' => 'One',
        'children' => array(
            array(
                'id'   => 2,
                'text' => 'Two'
            ),
            array(
                'id'   => 3,
                'text' => 'Three'
            )
        )
    ),
    array(
        'id'   => 4,
        'text' => 'Four'
    ),
    array(
        'id'   => 5,
        'text' => 'Five',
        'children' => array(
            array(
                'id'   => 6,
                'text' => 'Six'
            ),
            array(
                'id'   => 7,
                'text' => 'Seven'
            )
        )
    )
);

a call to the function like this one

$post_id = 23;
$meta_key = 'the_list';

function tad_extract_keys_from_list( $post_id, $meta_key, 'id' );

would yield the [1,4,5] array returning root level ids; the function can fetch deeper levels adding the fourth parameter

function tad_extract_keys_from_list( $post_id, $meta_key, 'id', 5 );

would yield the [6,7] array.

While not ground-breaking still the missing part of the equation.

I appreciate your input