通过多维数组中的key
获取value
假设有以下多维数组
$array = [
'zero'=>[
'e'=>'ss',
'f'=>'dd',
],
'e'=>'111',
'second'=>'222',
'third'=>'333'
];
如果知道了多维数组中的某个key
值, 我们可以用递归来获取这个key
对应的value
,但除了递归,我们还可以用array_walk_recursive
函数来完成这个操作
/** Obtain the value by key
*
*
*/
function recur($key, $array){
$data = [];
array_walk_recursive($array, function ($v, $k) use ($key, &$data) {
if ($k == $key) {
array_push($data, $v);
}
});
return $data;
}
$data = recur('e', $array);
print_r($data);
array_walk_recursive函数有两个参数, 第一个参数使我们要处理的数组,第二个参数是一个回调函数,这是一个我们自定义的函数。在这个函数中,我们设定 如果$k
等于我们给定的key
键值,就将这个key
所对应的值value
加入到$data
数组中。
其他函数
类似的函数还有array_walk
,但这个函数只能应用一维数组,要是用多维数组,用array_walk_recursive
更好
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。