У меня есть два массива:
$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 в процентном отношении от = к «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
Других решений пока нет …