Php matriz de conjunto de claves

Encontré este post que me ayudó:¿Dividir una cadena para formar claves de matriz multidimensional?

De todos modos, eso funciona como un encanto cuando se trata de valores de cadena, pero si las claves de una matriz contienen números enteros, se pierden estos.

Aquí está la demo:

Tengo un juego de llaves:

Array
(
    [0] => variable_data
    [1] => 0
    [2] => var_type
)

Y método para crear una matriz anidada.

function constructArray( &$array_ptr, $keys, $value )
    {
        // extract the last key
        $last_key = array_pop ( $keys );

        // walk/build the array to the specified key
        while ( $arr_key = strval( array_shift ( $keys ) ) )
        {
            if ( !array_key_exists ( strval($arr_key), $array_ptr ) )
            {
                $array_ptr[ strval($arr_key) ] = array ( );
            }
            $array_ptr = &$array_ptr[ strval($arr_key) ];
        }

        // set the final key
        $array_ptr[ $last_key ] = '$value';
    }

Y lo uso de esta manera:

$keys = array(
    'variable_data',
    '0',
    'var_type'
);
    $clean_arr = array();
    constructArray($clean_arr, $keys, 'asd');

pero la salida se ve así:

Array
(
    [variable_data] => Array
        (
            [var_desc] => $value
        )

)

Como puede ver, el índice variable_data no contiene el índice 0. He probado casi todo lo que puedo saber para trabajar, pero no lo hizo. ¿Alguien que tenga mejor pista?

Respuestas a la pregunta(1)

Su respuesta a la pregunta