PHP多维数组通过key获取值

标签 php arrays multidimensional-array

我有一个多数组,例如

$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/

相关文章:

flash - 如何从 Adob​​e AIR 中的文件流获取字节数组?

php - 引用 - 这个错误在 PHP 中意味着什么?

c - C 中带有 printf 和多维数组的 7 段显示

python - Cython:无法将 Python 对象转换为 'double *'

c++ - 向对象数组添加值 C++

c - 异常初始化麻烦

php - 如何生成多个数组中元素的组合?

php - 通过 Gmail SMTP 在 CodeIgniter 中发送电子邮件时遇到问题

php - 我可以在 Apache 中使用 VC9 编译的 PHP 吗?

javascript - 把php放到js页面