我有一个数组,它的数组深度可以不同,例如:
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/