如何在PHP中访问数组项的兄弟

时间:2013-08-30 15:27:42

标签: php arrays siblings

所以我有一个动态生成的数组,看起来像这样:

$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中有类似的东西我不知道?

2 个答案:

答案 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'; }}

我希望没有其他人需要阅读您的代码...