Php массив из набора ключей
Нашел этот пост, который помог мне:Разделить строку, чтобы сформировать ключи многомерного массива?
Во всяком случае, это работает как шарм, когда дело доходит до строковых значений, но если ключи массива содержат целые числа, то они пропускают их.
Вот демо:
у меня есть набор ключей:
Array
(
[0] => variable_data
[1] => 0
[2] => var_type
)
И способ создания вложенного массива
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';
}
И я использую это таким образом:
$keys = array(
'variable_data',
'0',
'var_type'
);
$clean_arr = array();
constructArray($clean_arr, $keys, 'asd');
но вывод выглядит так:
Array
(
[variable_data] => Array
(
[var_desc] => $value
)
)
Как видите, индекс variable_data не содержит 0 index. Я проверил все, что я мог знать, чтобы работать, но это не так. Кто-нибудь, кто имеет лучшую подсказку?