1
我有以下阵列:阵推多键与数组或字符串
$array = array('23' => array('19' => array('7' => array('id' => 7, 'name' => 'John Doe'))));
Array
(
[23] => Array
(
[19] => Array
(
[7] => Array
(
[id] => 7
[name] => John Doe
)
)
)
)
我要访问子元素,我知道他的子键是23 19 7
。我可以简单的格式
echo $array['23']['19']['7']['name']; // John Doe
这样做,但这些阵列刚刚3级,这可能会有所不同,或多或少。我必须制作一个数组unlimited level
。
我想,像我想下面的代码:
$keys = array('23', '19', '7');
echo $array[$keys]['name'];
,当然我得到了Warning: Illegal offset type in
错误。
然后我想这一个,但我不能得到任何元素:
function brackets($str) {
return sprintf("['%s']", $str);
}
$keys = array('23', '19', '7');
$string_key = implode('', array_map('brackets', $keys)); // ['23']['19']['7']
echo $array{$string_key}['name'];