У меня есть массив вроде этого: 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 ) ) )
Кто-нибудь знает как это сделать?
Это должно сделать трюк
$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; } ?>