У меня есть:
['countryCode' => 11, 'postalCode' => 12345],
['countryCode' => 11, 'postalCode' => 12346],
['countryCode' => 11, 'postalCode' => 12347],
['countryCode' => 11, 'postalCode' => 12348],
['countryCode' => 11, 'postalCode' => 12349],
['countryCode' => 12, 'postalCode' => 12345],
['countryCode' => 12, 'postalCode' => 12346],
['countryCode' => 12, 'postalCode' => 12347],
['countryCode' => 12, 'postalCode' => 12348],
['countryCode' => 12, 'postalCode' => 12349],
];
Но я хочу:
'11' => ['12345, 12346, 12347, 12348, 12349'], '12' => ['12345, 12346, 12347, 12348, 12349']
];
Я пытался:
$countries = array_column($data, 'countryCode');
$countries = array_unique($countries);
$countries = array_fill_keys($countries, []);
function makeArrays(&$countries, $data){
foreach ($countries as $countryId => $postalCodes){
foreach ($data as $item) {
if ($item['countryCode'] == $countryId) {
array_push($postalCodes, $item['postalCode']);
}
}
}
return $countries;
}
makeArrays($countries, $data);
Когда я var_dump, хотя функция makeArrays,ключи идентификатора страны не заполнены массивом почтовых индексов, как я ожидал:
array(2) {
[11]=>
array(0) {
}
[12]=>
array(0) {
}
}
Как получить массив каждого ключа для заполнения ожидаемыми значениями?