1

したがって、動的に生成する配列があり、次のようになります。

$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' の値を持っています

'item2' = 'value2' である配列内のすべての項目にアクセスし、'item4' の値を変更するために、たった 1 行のコードで方法を見つけようとしています。

配列[1]のみを変更する必要があることがわかっていれば、次のようなことを簡単に行うことができます。

$array[1]['item4'] = 'new value';

しかし、「item2」が「value2」と等しいアイテムの値のみを更新する必要があります

私はそれをループできることを知っていますが、たった1行のコードでそれを行う方法を見つけようとしています. jQueryは、特定の基準に一致する兄弟を簡単に見つけることができます.PHPに似たようなものがあるかもしれません.

4

2 に答える 2

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');
于 2013-08-30T15:40:23.060 に答える
2

あまりきれいではありませんが、ここにあります:

foreach($array as &$child) { if($child['item2'] == 'value2') { $child['item4'] = 'new value'; }}

誰もあなたのコードを読む必要がないことを願っています...

于 2013-08-30T15:37:24.513 に答える