我有一个多数组,例如
$a = array(
'key' => array(
'sub_key' => 'val'
),
'dif_key' => array(
'key' => array(
'sub_key' => 'val'
)
)
);
我的真实数组非常大,并且键都位于不同的位置。
我已经开始编写一堆嵌套的 foreach 和 if/isset 但它不太有效并且感觉有点“错误”。我对 PHP 相当熟悉,但对这个有点困惑。
是否有内置函数或最佳实践方法,我可以根据键名称访问所有值,无论它在哪里。
例如,无论数组中的位置如何,都从“sub_key”获取所有值。
EDIT:我现在看到问题是我的“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;
}
});
Output:
array (size=2)
0 => string 'val' (length=3)
1 => string 'val' (length=3)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)