php - 替换多维数组中的某些项目

标签 php arrays multidimensional-array

我有一个数组,它的数组深度可以不同,例如:

        array(
              'one' => array(
                             array(
                                'something' => 'value'
                                ),
                             array(
                                'something2' => 'value2'
                                ),
                             'another' => 'anothervalue'
                             ),
              'two' =>  array(
                             array(
                                'something' => 'value'
                                ),
                             array(
                                'something2' => 'value2'
                                ),
                             'another' => 'anothervalue'
                             )
              )

现在,假设我想用键“something”替换所有内容。

我是否需要使用递归函数来遍历数组?或者有更好的方法吗?

谢谢!

最佳答案

看看array_walk_recursive .在这种情况下它可能非常方便。

这是一个使用 array_walk_recursive 的例子:

$arr = array(
      'one' => array(
            array('something' => 'value'),
            array('something2' => 'value2'),
            'another' => 'anothervalue'
            ),
      'two' =>  array(
            array('something' => 'value'),
            array('something2' => 'value2'),
            'another' => 'anothervalue'
            )
       );

function update_something(&$item, $key)
{
    if($key == 'something')
        $item = 'newValue';
}

array_walk_recursive($arr, 'update_something');

如果在类中使用,回调方法必须将对象与函数一起添加。这是通过数组实现的:

array_walk_recursive($arr, array($this, 'update_something'));

关于php - 替换多维数组中的某些项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7801463/

相关文章:

php - wordpress开发有没有更轻量级可移植的PHP+Apache方案?

javascript - ng-submit angular js不能在php中工作

javascript - 表单提交后替换div

php - 发布表单输入的动态方式

python - 在 Python 中类似矩阵的二维数组打印

c++ - 在没有 for 循环的情况下解析字符串的字符数组?

arrays - 对一个已经排序的数组进行排序,除了一个乱序的元素

python - 将文本文件导入到python中的二维列表中添加单引号

arrays - MiniZinc - (多维)数组的数组

c++ - 程序输出问题