我有一个多数组,例如
$a = array(
'key' => array(
'sub_key' => 'val'
),
'dif_key' => array(
'key' => array(
'sub_key' => 'val'
)
)
);
我的真实数组非常大,并且键都位于不同的位置。
我已经开始编写一堆嵌套的 foreach 和 if/isset 但它不太有效并且感觉有点“错误”。我对 PHP 相当熟悉,但对这个有点困惑。
是否有内置函数或最佳实践方法,我可以根据键名称访问所有值,无论它在哪里。
例如,无论数组中的位置如何,都从“sub_key”获取所有值。
编辑:我现在看到的问题是我的“sub_key”是一个数组,因此未包含在此处第一条评论的结果中 http://php.net/manual/en/function.array-walk-recursive.php
最佳答案
试试 array_walk_recursive
:
$output = [];
array_walk_recursive($input, function ($value, $key) use (&$output) {
if ($key === 'sub_key') {
$output[] = $value;
}
});
输出:
array (size=2)
0 => string 'val' (length=3)
1 => string 'val' (length=3)
关于PHP多维数组通过key获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33604503/