场景:如果匹配,则用PHP中另一个数组的值替换数组中的值。多维数组
我有这2个数组:
array1
:
Array
(
[1] => Array
(
[label] => pending
[fillColor] => #468847
[data] => 50
)
[2] => Array
(
[label] => dispatched
[fillColor] => #6ecf70
[data] => 10
)
[3] => Array
(
[label] => delivered
[fillColor] => #f89406
[data] => 1
)
[4] => Array
(
[label] => invoiced
[fillColor] => #3a87ad
[data] => 2
)
)
array2
:
Array
(
[1] => Array
(
[label] => pending
[fillColor] => #468847
[data] => Array
(
[0] => 1
)
)
)
我需要的结果是
Array
(
[1] => Array
(
[label] => pending
[fillColor] => #468847
[data] => Array
(
[0] => 50
[1] => 1
)
)
[2] => Array
(
[label] => dispatched
[fillColor] => #6ecf70
[data] => Array
(
[0] => 10
[1] => 0
)
)
[3] => Array
(
[label] => delivered
[fillColor] => #f89406
[data] => Array
(
[0] => 1
[1] => 0
)
)
[4] => Array
(
[label] => invoiced
[fillColor] => #3a87ad
[data] => Array
(
[0] => 2
[1] => 0
)
)
)
只有4个标签:
pending
dispatched
delivered
invoiced
请注意,数组只是一个例子。可能发生的情况是,第一个数组根本没有值,或者只有2个,第二个数组有3个值或没有值。
因为那上面的约束,我想用array_replace
并具有阵列的所谓
base_array = ["pending", "dispatched", "delivered", "invoiced"]
我试图环路base_array
和尝试,如果标签存在于array1
与array2
匹配。
基本上,如果键(这是标记)不以任何的array1
或array2
然后存在替换的值将所得数组中为0。
我已经试过
foreach($base_array as $key => $value) {
if(in_array($key, $array1[$key])) {
$array[$key] = $array1[$key];
}
}
,但它看起来像我失去了对这些多维数组和更换。任何帮助将非常感激。谢谢。
你能解释一下你的结果阵列数据的关键?你的预期结果是什么? – rocky
期望的数组结果在上面。谢谢。 –
谢谢你的时间。我已经重写了SQL查询并返回更好的数组。 –