Доступ к многомерному массиву с помощью строки с разделителем

предположим, что у меня есть многомерный массив, похожий на это:

<?php $array = array("test1" => array("test2" => array("test3" => 1)), ... foo1 = array("foo2" => 2)); ?> 

Я хочу получить доступ к элементу массива, передав строку, такую ​​как "test1.test2.test3" функции, которая в свою очередь вызывает элемент массива. Я мог бы использовать eval() , заменив строку на [] (вызывая $array["test2]["test3"] …), но мне интересно, существует ли другой более прочный подход при вызове элемента массива без прохождения через все его глубины или использовать eval() .

Related of "Доступ к многомерному массиву с помощью строки с разделителем"

Вы можете использовать

 function get_multi($arr, $str) { foreach (explode('.', $str) as $key) { if (!array_key_exists($arr, $key)) { return NULL; } $arr = $arr[$key]; } return $arr; }