Отсортировать массив php по одному значению, и разбить на несколько других массивов
Есть массив
$arr = array(
array('Вася','Пупкин'),
array('Миша','Пупкин'),
array('Николай','Смирнов'),
array('Иван','Пупкин'),
array('Костик','Смирнов'),
array('Никита','Кораблёв'),
...
array(...)
);
Как рассортировать его пофамильно? То есть, чтобы все Пупкины были в массиве $arr1, все Смирновы в $arr2, а все фамилия в массиве $arrN?
Фамилии встречаются разные, и в единый массив их следует определять только если фамилия полностью совпадает.
P.S. Можно считать, что там только мужские фамилии, т.е. нет фамилии "Анна Пупкина" с женским окончанием. На имена внимания тоже можно не обращать. Это все для упрощения примера.
Ответы (1 шт):
Автор решения: Dmitry
→ Ссылка
$arr = array(
array('Вася','Пупкин'),
array('Миша','Пупкин'),
array('Николай','Смирнов'),
array('Иван','Пупкин'),
array('Костик','Смирнов'),
array('Никита','Кораблёв')
);
$res = [];
foreach ($arr as $item) {
$res[$item[1]][] = $item;
}
$res = array_values($res);