我有一个数组$ a和一些关键数组,例如$ keys1,$ keys2,....
$a = array('a'=>array('b'=>array('c'=>array('d'=>123,'s'=>4),'r'=>3),'q'=>2),'p'=>1);
$keys1 = array('a','b','c');
$keys2 = array('a','b');
$a = Array
(
[a] => Array
(
[b] => Array
(
[c] => Array
(
[d] => 123
[s] => 4
)
[r] => 3
)
[q] => 2
)
[p] => 1
)
每当使用$ keys1时,输出应为
Array
(
[d] => 123
[s] => 4
)
或者每当使用$ keys2时,输出应为
Array
(
[c] => Array
(
[d] => 123
[s] => 4
)
)
这很简单我可以通过在第一种情况下使用$a[a][b][c]
并在第二种情况下使用$a[a][b]
来实现结果
问题:这些$ key在运行时以数组的形式提供, php中是否有任何函数可以获得结果?
答案 0 :(得分:1)
试试这个。
评论在代码中。
它将遍历键并返回搜索到的值。
$a = array('a'=>array('b'=>array('c'=>array('d'=>123,'s'=>4),'r'=>3),'q'=>2),'p'=>1);
$keys1 = array('a','b','c');
$keys2 = array('a','b');
$keys = $keys1; // set this as "search value"
$value = $a; // create a copy of original array. Maybe not needed?
Foreach($keys as $key){ // loop keys in search value
$value = $value[$key]; // overwrite $value with subarray of $value[$key]
}
Var_dump($value); // dump the search return.