我有一个数组,其数组深度可能会有所不同,例如:
array(
'one' => array(
array(
'something' => 'value'
),
array(
'something2' => 'value2'
),
'another' => 'anothervalue'
),
'two' => array(
array(
'something' => 'value'
),
array(
'something2' => 'value2'
),
'another' => 'anothervalue'
)
)
现在,假设我想用关键的“某物”替换所有内容。
我需要使用递归函数来迭代数组吗?或者,还有更好的方法?
看一下array_walk_recursive http://php.net/manual/en/function.array-walk-recursive.php。在这种情况下它可能非常方便。
这是使用 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'));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)