假设我有这样一个数组:
$myArray = array(
'a' => 'alpha',
'b' => array(
'Z' => 'zulu' )
);我想搜索'Z‘键并替换它的值。
我试过迭代器、前级循环等等,但是没有运气。
*经修正的语法。
发布于 2014-07-07 23:33:03
您可以传递对array_walk_recursive的引用:
$myArray = array(
'a' => 'alpha',
'b' => array(
'Z' => 'zulu' )
);
$newvalue = 'zebra';
array_walk_recursive($myArray, function(&$value, $key) use($newvalue){
if($key=='Z'){
$value = $newvalue;
}
});
print_r($myArray);示例:http://codepad.viper-7.com/ajsYEn
发布于 2014-07-07 23:29:43
<?php
$myArray = array(
'a' => 'alpha',
'b' => array (
'Z' => 'zulu'
),
);
foreach($myArray as $key => $value) {
if (is_array($value)) {
foreach($value as $k => $v) {
if ($k == 'Z')
{
//do something
$myArray[$key]['newKey'] = $v;
unset($myArray[$key][$k]);
}
}
}
}
print_r($myArray);输出:
Array
(
[a] => alpha
[b] => Array
(
[newKey] => zulu
)
)发布于 2014-07-07 23:31:33
您可以使用array_walk_recursive并通过引用传递:
array_walk_recursive($myArray, function(&$item, $key) {
if ($key == 'Z') $item = "hi";
});http://sandbox.onlinephpfunctions.com/code/ad750cbb5b30b87f9e6068ba15420cf924ed5a7b
https://stackoverflow.com/questions/24621429
复制相似问题