更新数组如果找到值多维数组

时间:2016-04-07 20:00:18

标签: php multidimensional-array key-value

如果找到值,有没有办法更新多维数组的一部分?例如,我有一个$ foo数组,其中$ foo的更新块名为$ bar。当some_id = 123时,我想将$ bar合并到$ foo中。

不幸的是我无法更改some_id,并且所有数组的some_id键都相同。不幸的是,酒吧钥匙也必须保持不变。

$foo = array(
  0 => array(
    bar => array(
      some_id => 123,
      a => 1 
    )
  ), 
  1 => array(
    bar => array(
      some_id => 234,
      a => 5
    )
  )
)

$update_bar = array(
    some_id => 123,
    a => 10
)

1 个答案:

答案 0 :(得分:0)

最简单的方法是:

foreach ($foo as $key => $value) {
    if ($value['some_id'] == 123) {
        $foo[$key] = $updated_bar;
        break;
    }
}

如果some_id值非常重要且唯一,那么最好重建$foo,如:

$foo = array(
   // use some_id as key
   123 => array(
     a => 1 
   ),
   234 => array(
     a => 5
   )
);

// and update without any `foreach`
$foo[123] = array(a => new_val)