根据条件 PHP 将数据插入关联数组中


insert data in associative array based on condition PHP

我有两个数组:

$sizes$percentages

$sizes看起来像这样:

 "sizes":{"0":{"size_id":5,"it":"50","us":"32"},"1":{"size_id":4,"it":"48","us":"30"}},

$percentages像这样:

"percentages":[{"5":"70"},{"4":"30"}]

我想根据百分比 = 的值插入 $sizes 数组中的百分比中的数据$key以 $sizes 中的"size_id"结尾,并以以下内容结尾:

"sizes_with_percentage":{"0":{"size_id":5,"percentage":70,it":"50","us":"32"},"1":{"size_id":4,"percentage":30"it":"48","us":"30"}},

我尝试了一些嵌套循环,但没有找到正确的方法,array_push_assoc返回"调用未定义的bla bla错误"。

假设您首先使用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);

工作示例:https://3v4l.org/LR8Tv