【问题标题】:php array into multidimentional array foreachphp数组转换为多维数组foreach
【发布时间】:2012-09-09 19:11:22
【问题描述】:

我有一个数组:$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() 然后构建一个新数组?

【问题讨论】:

    标签: php multidimensional-array foreach


    【解决方案1】:

    这样的?

    <?
    $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));
    

    【讨论】:

    • woq。那很完美。你不知道我查过、尝试过、修改过的所有东西,而且因为我无法让它工作而变得疯狂。比如这个:link ...但是谢谢。这看起来很简单。
    • 好的。所以它并没有我想象的那么好。哦。这似乎奏效了。但在 $json_encode() 未正确编码时失败。但这是一个很好的开始。
    猜你喜欢
    • 1970-01-01
    • 2015-11-17
    • 2011-12-09
    • 1970-01-01
    • 2017-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多