2012-08-24 40 views
11

मैं इस तरह एक सरणी है द्वारा सरणी के लिए: डीकैसे समूह एक ही कुंजी और मान

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 
      ) 
    ) 
    ) 

क्या कोई यह जानता है कि ऐसा कैसे करें?

उत्तर

22

इस चाल करना चाहिए

$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) 
+0

मदद के लिए Thx लेकिन मैं सच में चाहते arrary बाहर डाल सरणी की तरह देखो ( [ 0] => ऐरे ( [प्रकार] => एएए [Label_id] => सरणी ( [0] => A1,35 [1] => A2,34 ) ) ) – 408

+0

उत्तर संपादित !! –

+0

यह भयानक सहायता के लिए Thx है: डी – 408

2
<?php 

$grouped_types = array(); 

foreach($types as $type){ 
     $grouped_types[$type['type']][] = $type; 
} 

?> 
संबंधित मुद्दे