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()上失败,没有正确编码。但这是一个很好的开始。