Как сгруппировать массив по одному ключу и значению

У меня есть массив вроде этого: D

Array ( [0] => Array ( [type] => AAA [label_id] => A1,35 ) [1] => Array ( [type] => AAA [label_id] => A2,34 ) [2] => Array ( [type] => BBB [label_id] => B1,29 ) [3] => Array ( [type] => CCC [label_id] => C1,20 ) [4] => Array ( [type] => CCC [label_id] => C2,19 ) [5] => Array ( [type] => CCC [label_id] => C3,18 ) ) 

Теперь я хотел бы сделать его группой по тому же ключу и значению, как это.

 Array ( [0] => Array ( [type] => AAA [label_id] => Array ( [0] => A1,35 [1] => A2,34 ) ) [1] => Array ( [type] => BBB [label_id] => Array ( [0] => B1,29 ) ) [2] => Array ( [type] => CCC [label_id] => Array ( [0] => C1,20 [1] => C2,19 [2] => C3,18 ) ) ) 

Кто-нибудь знает как это сделать?

Related of "Как сгруппировать массив по одному ключу и значению"

Это должно сделать трюк

 $args = array ( array( 'type' => 'AAA', 'label_id' => 'A1,35' ), array( 'type' => 'AAA', 'label_id' => 'A2,34' ), array( 'type' => 'BBB', 'label_id' => 'B1,29' ), array( 'type' => 'CCC', 'label_id' => 'C1,20' ), array( 'type' => 'CCC', 'label_id' => 'C2,19' ), array( 'type' => 'CCC', 'label_id' => 'C3,18' ) ); $tmp = array(); foreach($args as $arg) { $tmp[$arg['type']][] = $arg['label_id']; } $output = array(); foreach($tmp as $type => $labels) { $output[] = array( 'type' => $type, 'label_id' => $labels ); } var_dump($output); 

Выход:

 array 0 => array 'type' => string 'AAA' (length=3) 'label_id' => array 0 => string 'A1,35' (length=5) 1 => string 'A2,34' (length=5) 1 => array 'type' => string 'BBB' (length=3) 'label_id' => array 0 => string 'B1,29' (length=5) 2 => array 'type' => string 'CCC' (length=3) 'label_id' => array 0 => string 'C1,20' (length=5) 1 => string 'C2,19' (length=5) 2 => string 'C3,18' (length=5) 
 <?php $grouped_types = array(); foreach($types as $type){ $grouped_types[$type['type']][] = $type; } ?>