【发布时间】:2014-10-29 06:58:45
【问题描述】:
我有一个如下所示的数组:
$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
但由于深度可能不同,这不是一个可行的解决方案...
【问题讨论】:
-
你需要创建一个递归函数,收集结果。
-
只需创建一个名为 $result 的变量,使其等于 $array,然后在 $string_array 上运行一个循环,使 $result = $result[$string_array[$i]]