У меня есть массив, который выглядит следующим образом:Поиск массива по ключевому отрасли
$array = array (
[level_1] => array (
[level_2] => array (
[level_3] => something
)
),
[level_12] => array (
[level_2] => somethingelse
),
[level_13] => array (
[level_22] => array (
[level_3] => something
)
),
);
ключи или значения не всегда являются уникальными, но ветвь.
И у меня есть строка, которая выглядит следующим образом:
$string = 'level_1-level_2-level_3';
те ключи для филиала.
И мне нужно как-то получить значение из массива на основе этой строки? Как это:
$string_array = explode('-', $string);
$array[$string_array[0]][$string_array[1]][$string_array[2]] // something
Но так как глубина может быть разной, это не является жизнеспособным решением ...
Вам нужно создать рекурсивную функцию , что собирает результаты. – vaso123
Просто создайте переменную с именем $ result, сделайте ее равной $ array, затем запустите цикл на вашем $ string_array, создав $ result = $ result [$ string_array [$ i]] –