我有以下数组:
$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'];