предположим, что у меня есть многомерный массив, похожий на это:
<?php $array = array("test1" => array("test2" => array("test3" => 1)), ... foo1 = array("foo2" => 2)); ?>
Я хочу получить доступ к элементу массива, передав строку, такую как "test1.test2.test3"
функции, которая в свою очередь вызывает элемент массива. Я мог бы использовать eval()
, заменив строку на []
(вызывая $array["test2]["test3"]
…), но мне интересно, существует ли другой более прочный подход при вызове элемента массива без прохождения через все его глубины или использовать eval()
.
Вы можете использовать
function get_multi($arr, $str) { foreach (explode('.', $str) as $key) { if (!array_key_exists($arr, $key)) { return NULL; } $arr = $arr[$key]; } return $arr; }