группировка многомерных массивов php

#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, поэтому я не получал никаких уведомлений..