所以我有一个动态生成的数组,看起来像这样:
$array[1] = array(
'item1' => 'value1',
'item2' => 'value2',
'item3' => 'value3',
'item4' => 'value4',
'item5' => 'value5'
);
$array[2] = array(
'item1' => 'value100',
'item2' => 'value200',
'item3' => 'value300',
'item4' => 'value400',
'item5' => 'value500'
);
...
现在我从其他地方获得'item2'='value2'coming的值
我正试图找到一种方法,只用一行代码来访问数组中'item2'='value2'的所有项目并修改'item4'的值
如果我知道我只需要为数组[1]更改它,我就可以轻松做到这样的事情:
$array[1]['item4'] = 'new value';
但是我只需要更新'item2'等于'value2'的项目的值
我知道我可以循环思考它,但我试图找到一种方法来只用一行代码。当jQuery符合某个标准时,jQuery可以很容易地找到兄弟姐妹,也许PHP中有类似的东西我不知道?
答案 0 :(得分:3)
希望这有帮助
$array[1] = array(
'item1' => 'value1',
'item2' => 'value2',
'item3' => 'value3',
'item4' => 'value4',
'item5' => 'value5'
);
$array[2] = array(
'item1' => 'value100',
'item2' => 'value200',
'item3' => 'value300',
'item4' => 'value400',
'item5' => 'value500'
);
function test(&$item, $key){
if($item['item2'] == 'value2'){
$item['item4'] = 'new value';
}
}
array_walk($array, 'test');
答案 1 :(得分:2)
它不是很漂亮但是在这里:
foreach($array as &$child) { if($child['item2'] == 'value2') { $child['item4'] = 'new value'; }}
我希望没有其他人需要阅读您的代码...