次の配列があります。
$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'];