我有两个数组:
true
和$sizes
$percentages
看起来像这样:
$sizes
和 "sizes":{"0":{"size_id":5,"it":"50","us":"32"},"1":{"size_id":4,"it":"48","us":"30"}},
是这样的:
$percentages
我想在$ sizes数组中插入百分比数据,基于$ size的值= = $ size中的“size_id”并以此结尾:
"percentages":[{"5":"70"},{"4":"30"}]
我尝试了一些嵌套循环,但是我没有找到正确的方法,并且array_push_assoc返回“调用未定义的bla bla错误”。
答案 0 :(得分:1)
假设您先在这里使用json_decode
创建了真正的数组:
$sizes = json_decode('{"0":{"size_id":5,"it":"50","us":"32"},"1":{"size_id":4,"it":"48","us":"30"}}', true);
$percentages = json_decode('[{"5":"70"},{"4":"30"}]', true);
您可以非常简单地构建$final
数组。
首先循环大小,使用$final
作为数组键将它们添加到size_id
。这将使下一步更容易。
foreach($sizes AS $size) {
$final[$size['size_id']] = $size;
}
现在循环显示百分比,并使用键找到正确的$final
条目,并添加百分比元素。
foreach($percentages AS $percentage) {
$final[key($percentage)]['percentage'] = current($percentage);
}
你已经完成了!如果您不希望$final
数组仍由size_id
键入,则可以删除该数组:
$final = array_values($final);
当然,如果您希望输出为json:
$finalJson = json_encode($final);