0

私は配列を持っています:$ 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があります。同じことをする必要がありますが、これを機能させた後、それを機能させることができると期待しています。

私はこことグーグルを見てきました。ここにいくつかの同様の例がありますが、それらのいずれも正しく機能させることができませんでした。私の知る限り、最善のルートは、使用foreach()してから新しいアレイを構築することだと思いますか?

4

1 に答える 1

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));
于 2012-09-09T19:18:45.070 に答える