分组元素数组依赖于密钥检查?

时间:2013-03-22 06:42:44

标签: php arrays multidimensional-array

我有一个数组:

Array
    (
    [0] => Array
        (
            [id] => 0
            [type] => type1
            [aa] => 1.00
            [bb] => 0.00
            [cc] => 1.00
            [group] => new
        ),
    [1] => Array
        (
            [id] => 1
            [type] => type2
            [aa] => 1.00
            [bb] => 0.00
            [cc] => 1.00
            [group] => new
        ),
    [2] => Array
        (
            [id] => 4521081
            [type] => type3
            [aa] => 1.00
            [bb] => 0.00
            [cc] => 1.00
            [group] => old
        )
);

如何对上面的数组基本check.result进行分组看起来像这样:

Array(
    'new'=>array(
        'type1'=>array(
                    [id] => 0
                    [aa] => 1.00
                    [bb] => 0.00
                    [cc] => 1.00
                    ),
        'type2'=>array(
                        [aa] => 1.00
                        [bb] => 0.00
                        [cc] => 1.00
                        )
    ),
    'old'=>array(
             'type3'=>array(
                        [aa] => 1.00
                        [bb] => 0.00
                        [cc] => 1.00
                        )
            )
);

3 个答案:

答案 0 :(得分:1)

试试这个:

$res    = array();
foreach($your_array as $val){
   $res[$val['group']][$val['type']]['id']  = $val['id'];
   $res[$val['group']][$val['type']]['aa']  = $val['aa'];
   $res[$val['group']][$val['type']]['bb']  = $val['bb'];
   $res[$val['group']][$val['type']]['cc']  = $val['cc'];
}

echo "<pre>";
print_r($res);

答案 1 :(得分:0)

foreach( $array as $each )
{
   $tmp = $each;
   unset( $tmp['group'],$tmp['type'] );
   $output[$each['group']][$each['type']] = $tmp;
}

答案 2 :(得分:0)

我做:

foreach($array as $each)
{
  $output[$each['group']] = $each;
}

它有更大的尺寸,但看起来不错,有时你也需要组。

相关问题