使用一些外键从PHP关联数组中提取内部数组
我有一个数组$a和一些键数组,例如$keys1、$keys2使用一些外键从PHP关联数组中提取内部数组,php,nested,associative-array,Php,Nested,Associative Array,我有一个数组$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
$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
)
Array
(
[c] => Array
(
[d] => 123
[s] => 4
)
)
或者,无论何时使用$keys2,输出都应为
Array
(
[d] => 123
[s] => 4
)
Array
(
[c] => Array
(
[d] => 123
[s] => 4
)
)
这很简单,我可以通过在第一种情况下使用$a[a][b][c]和在第二种情况下使用$a[a][b]来实现结果
问题:这些$key在运行时以数组的形式提供,
php中有任何函数可以获得结果吗?试试这个。
注释用代码表示
它将循环遍历键并返回搜索的值
$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.
如果我的回答有问题,请说出来。我很乐意修复它。你的答案没有错,实际上我在php函数中搜索bulid