【发布时间】:2019-08-17 12:40:04
【问题描述】:
有2个不同大小的数组,如果数据不匹配,数组需要用空字符串填充。
数组 A,里面有 3 个对象:
$array_A = [
{"code":"1","cost":30},
{"code":"3","cost":100},
{"code":"4","cost":50}
]
数组 B 里面有 5 个对象:
$array_B = [
{"code":"1"},
{"code":"2"},
{"code":"3"},
{"code":"4"},
{"code":"5"}
]
然后,我需要将数组A和数组B与属性code进行比较,如果code相同,则填写cost属性,否则让cost == 0。
如下图:-
新数组:
$array_New = [
{"code":"1","cost":30},
{"code":"2","cost":0},
{"code":"3","cost":100},
{"code":"4","cost":50},
{"code":"5","cost":0}
]
这是我的解决方案(但不起作用):
用两个for循环比较数组A和数组B,然后将数据填充到array_New
$array_New= array();
foreach ($array_B as $key => $array_B_data) {
for ($i=0; $i < sizeof($array_A) ; $i++) {
if ($array_B_data->code == $array_A[$i]->code) {
$array_New[$key] = $array_A[$i]['cost'];
}else{
$array_New[$key] = '';
}
}
}
return $array_New;
但是,$array_New 不显示 Array New 中所示的数据。 谁能给我一些指导? 非常感谢。
【问题讨论】:
-
为什么json值在数组中?为什么不始终具有对称结构?
-
其实我的数据是从 Laravel PHP 模型生成的。上面的代码我只是让它更容易理解。这是包含 PHP 对象的数组。