Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php数组转换为多维数组foreach_Php_Multidimensional Array_Foreach - Fatal编程技术网

php数组转换为多维数组foreach

php数组转换为多维数组foreach,php,multidimensional-array,foreach,Php,Multidimensional Array,Foreach,我有一个数组:$类型: Array ( [0] => Array ( [id] => 1 [cat] => Main [type] => name0 ) [1] => Array ( [id] => 2 [cat] => Main [type] =&

我有一个数组:$类型:

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

类似这样的东西

<?
$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。太好了。你不知道我查过的所有东西,试过的,修改过的,都疯了,因为我没法让它工作。像这个例子:。。。但是谢谢你。看起来很简单。所以它没有我想象的那么好。哦。这似乎奏效了。但是在$json_encode()上失败,没有正确编码。但这是一个很好的开始。