php数组进入多维数组foreach

时间:2012-09-09 19:11:22

标签: php multidimensional-array foreach

我有一个数组:$ types of:

Array
(
    [0] => Array
        (
            [id] => 1
            [cat] => Main
            [type] => name0        )

    [1] => Array
        (
            [id] => 2
            [cat] => Main
            [type] => Name1        )

    [2] => Array
        (
            [id] => 3
            [cat] => Main
            [type] => Name2        )

    [3] => Array
        (
            [id] => 4
            [cat] => Main
            [type] => Name3        )

    [4] => Array
        (
            [id] => 5
            [cat] => Secondary
            [type] => Name4        )

    [5] => Array
        (
            [id] => 6
            [cat] => Secondary
            [type] => Name5        )

    [6] => Array
        (
            [id] => 7
            [cat] => Secondary
            [type] => Name6        )

    [7] => Array
        (
            [id] => 8
            [cat] => Other
            [type] => Name7
        )

    [8] => Array
        (
            [id] => 9
            [cat] => Other
            [type] => Name8
        )

    [9] => Array
        (
            [id] => 10
            [cat] => Other
            [type] => Name9
        )

    [10] => Array
        (
            [id] => 11
            [cat] => Other
            [type] => name10
        )

)

我想将它重新构建为多向阵列。但是由猫组合在一起 所以他们是主要,次要和其他*那些做或可能从数据库更改。随着时间的推移越多,因此建议使用$types['cat']

我还有另外一个。有cat1 / cat2我需要做同样的事情但是在我得到这个之后,我希望我可以解决这个问题。

我在这里看了一下,在google上。这里有一些类似的例子,但我无法使它们中的任何一个正常工作。据我所知,我认为最好的途径是使用foreach()然后构建一个新数组?

1 个答案:

答案 0 :(得分:0)

这样的东西?

<?
$all = array(
    array('id'=>1, 'cat'=>'Main','type'=>'Name0'),
    array('id'=>2, 'cat'=>'Main','type'=>'Name1'),
    array('id'=>3, 'cat'=>'Main','type'=>'Name3'),
    array('id'=>4, 'cat'=>'Sec','type'=>'Name4'),
    array('id'=>5, 'cat'=>'Sec','type'=>'Name5'),
    array('id'=>6, 'cat'=>'Sec','type'=>'Name6'),
);

$result = array();
foreach($all as $array){
    $result[$array['cat']][] = array('id'=>$array['id'],'type'=>$array['type']);
}

die(print_r($result));