<?php
$a = [
['rank' => '579', 'id' => '1', 'foo' => 'a'],
['rank' => '251', 'id' => '2', 'foo' => 'b'],
];
$b = [
['size' => 'S', 'status' => 'A', 'id' => '1', 'foo' => 'c'],
['size' => 'L', 'status' => 'A', 'id' => '2', 'foo' => 'd'],
];
$result = [];
foreach (array_merge($a, $b) as $row) {
$result[$row['id']] = ($result[$row['id']] ?? []) + $row;
}
var_export(array_values($result));
preferences:
31.7 ms | 402 KiB | 5 Q