Мы получили этот массив: предположим, что мы заранее не знаем имена ни одного из ключей.
Код: Выделить всё
$input = [
['name' => 'John McClane', 'age' => '40'],
['name' => 'John McClane', 'age' => '50'],
['name' => 'Hans Gruber', 'age' => '40'],
['name' => 'Hans Gruber', 'age' => '50'],
['name' => 'Holly McClane', 'age' => '20'],
['name' => 'Holly McClane', 'age' => '49'],
];
$output = [
'name' => [
'John McClane',
'Hans Gruber',
'Holly McClane'
],
'age' => [
'40',
'50',
'20',
'49'
]
];
Код: Выделить всё
$output = [];
foreach ($input as $arr) {
$keys = array_keys($arr);
foreach ($keys as $key) {
$output[$key] = array_unique(array_column($input, $key));
}
}
на $input->pluck($key)->toArray (); не очень интересно.
Что мне интересно, есть ли изящный способ сделать это полностью с помощью коллекции Laravel в одной строке?Группировка по ключам второго уровня с уникальными значениями в каждой группе.
Подробнее здесь: https://stackoverflow.com/questions/538 ... and-remove
Мобильная версия