PHP多维数组分组

3

我有点困惑如何根据一个共同的值重新组合数组。以下是下面的数组:

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] => 数组(
         [team] => 1
         [id] => 5
         [user] =>teamleader1
         [Designation] => 团队领袖
     )
    [1] => 数组(
         [team] => 1
         [id] => 6
         [user] =>consultant1
         [Designation] => 咨询师
     )
    [2] => 数组(
         [team] => 1
         [id] => 7
         [user] =>consultant2
         [Designation] => 咨询师
     )
)
[2] => 数组
    (
    [0] => 数组(
         [team] => 1
         [id] => 8
         [user] =>consultant3
         [Designation] => 咨询师
     )
    [1] => 数组(
         [team] => 1
         [id] => 9
         [user] =>teamleader2
         [Designation] => 团队领袖
     )
    )
)
两个主要的数组组是各自的团队。任何想法/帮助都将不胜感激。谢谢!
1个回答

2
<?php
$grouped = array();
foreach ($yourData as $item) {
  // copy item to grouped
  $grouped[$item['team']][] = $item;
}
var_dump($grouped);

演示


不需要使用isset函数,如果变量不存在,PHP会自动创建它。 - hakre
这个代码显然应该会抛出 Notice,但是 PHP5.3 实际上并没有抛出。我之前不知道这一点……虽然看起来还是很奇怪。 - rodneyrehm
这不会给出通知,请参见http://codepad.org/VdoMnfTD,PHP 5.2:http://ideone.com/vPTKw - hakre
感谢您的回答和帮助!仅凭那么少的代码,我的问题就得到了解决。非常感谢!我正在使用PHP 5.3.1,所以我没有收到任何通知。 - Jade Ryan Ibarrola

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接