2013-03-22 54 views
-1

我有一个数组:分组元素数组取决于密钥检查?

Array 
    (
    [0] => Array 
     (
      [id] => 0 
      [type] => type1 
      [aa] => 1.00 
      [bb] => 0.00 
      [cc] => 1.00 
      [group] => new 
     ), 
    [1] => Array 
     (
      [id] => 1 
      [type] => type2 
      [aa] => 1.00 
      [bb] => 0.00 
      [cc] => 1.00 
      [group] => new 
     ), 
    [2] => Array 
     (
      [id] => 4521081 
      [type] => type3 
      [aa] => 1.00 
      [bb] => 0.00 
      [cc] => 1.00 
      [group] => old 
     ) 
); 

我怎么能基的上面排列基部关键checking.result看一些这样的事:

Array(
    'new'=>array(
     'type1'=>array(
        [id] => 0 
        [aa] => 1.00 
        [bb] => 0.00 
        [cc] => 1.00 
        ), 
     'type2'=>array(
         [aa] => 1.00 
         [bb] => 0.00 
         [cc] => 1.00 
         ) 
    ), 
    'old'=>array(
      'type3'=>array(
         [aa] => 1.00 
         [bb] => 0.00 
         [cc] => 1.00 
         ) 
      ) 
); 
+0

你尝试过使用'foreach'吗? – Voitcus 2013-03-22 06:47:22

回答

1

试试这个:

$res = array(); 
foreach($your_array as $val){ 
    $res[$val['group']][$val['type']]['id'] = $val['id']; 
    $res[$val['group']][$val['type']]['aa'] = $val['aa']; 
    $res[$val['group']][$val['type']]['bb'] = $val['bb']; 
    $res[$val['group']][$val['type']]['cc'] = $val['cc']; 
} 

echo "<pre>"; 
print_r($res); 
0
foreach($array as $each) 
{ 
    $tmp = $each; 
    unset($tmp['group'],$tmp['type']); 
    $output[$each['group']][$each['type']] = $tmp; 
} 
0

我这样做:

foreach($array as $each) 
{ 
    $output[$each['group']] = $each; 
} 

它有更多的尺寸,但看起来不错,有时你也需要组。