#php #arrays
#php #массивы
Вопрос:
Я немного запутался в том, как перегруппировать массив на основе общего значения. Вот массив ниже:
Array
(
[0] => Array
(
[team] => 1
[id] => 5
[user] => teamleader1
[Designation] => Team Leader
)
[1] => Array
(
[team] => 1
[id] => 6
[user] => consultant1
[Designation] => Consultant
)
[2] => Array
(
[team] => 1
[id] => 7
[user] => consultant2
[Designation] => Consultant
)
[3] => Array
(
[team] => 2
[id] => 8
[user] => consultant3
[Designation] => Consultant
)
[4] => Array
(
[team] => 2
[id] => 9
[user] => teamleader2
[Designation] => Team Leader
)
)
и я хотел бы сгруппировать его по значению команды, как показано ниже:
Массив ( [1] => Массив ( [0] => Массив( [команда] => 1 [id] => 5 [user] =>teamleader1 [Назначение] => Руководитель группы ) [1] => Массив( [команда] => 1 [id] => 6 [пользователь] =>консультант1 [Обозначение] => Консультант ) [2] => Массив( [команда] => 1 [id] => 7 [пользователь] =>консультант2 [Обозначение] => Консультант ) ) [2] => Массив ( [0] => Массив( [команда] => 1 [id] => 8 [пользователь] =>консультант3 [Обозначение] => Консультант ) [1] => Массив( [команда] => 1 [id] => 9 [пользователь] => teamleader2 [Назначение] => Руководитель группы ) ) )
Две основные группы массивов — это сами команды. Любая идея / помощь будут высоко оценены. Заранее спасибо!
С уважением
Ответ №1:
<?php
$grouped = array();
foreach ($yourData as $item) {
// copy item to grouped
$grouped[$item['team']][] = $item;
}
var_dump($grouped);
Комментарии:
1. Нет необходимости проверять с помощью isset, PHP создает его для вас, если он не существует.
2. Это вызывает беспокойство. Но PHP5.3 на самом деле не вызывает его. Не знал, что … — все еще выглядит странно.
3. Это не дает уведомлений, см. codepad.org/VdoMnfTD , PHP 5.2: ideone.com/vPTKw
4. спасибо за ваши ответы и помощь! с таким небольшим количеством кода это решило мою проблему. Большое спасибо! Я использую PHP 5.3.1, поэтому я не получал никаких уведомлений..