如果找到值,有没有办法更新多维数组的一部分?例如,我有一个$ 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
)
答案 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)