2012-12-02 120 views
1

我有表示由日期分组的数据的计数3个阵列$dummyArray1 = array('year' => array('month' => 'count'));PHP数组合并

$dummyArray1 = array(
    '2012' => array(
     '1' => 13, 
     '2' => 22, 
     '3' => 18, 
     '5' => 19 
    ), 
    '2011' => array(
     '1' => '4', 
     '3' => 13 
    ) 
); 

$dummyArray2 = array(
    '2012' => array(
     '1' => 44, 
     '4' => 34, 
     '5' => 38, 
     '6' => 29 
    ), 
    '2011' => array(
     '1' => 9, 
     '2' => 11, 
     '3' => 1 
    ) 
); 

$dummyArray3 = array(
    '2012' => array(
     '2' => 5, 
     '4' => 3, 
     '6' => 1, 
     '8' => 11 
    ), 
    '2011' => array(
     '3' => 9, 
     '4' => 14, 
     '9' => 9 
    ) 
); 

我需要组中的那些1个阵列,使得每个月份我将每个阵列的count值。如果计数数据在特定月份中不存在,则应该插入0作为count值。

+0

为清楚起见,您可以加入一个例子你想要的输出?谢谢。 – Wiseguy

回答

1

是easer如果你犯了一个功能:

<?php 

function groupMyArray($dummysArray) 
{ 
    $result = array(); 
    foreach($dummysArray as $dummyArray): 
     foreach($dummyArray as $year => $countarray): 
      for($i = 1; $i <= 12; $i++): 
       if(count($countarray[$i]) > 0){ 
        $result[$year] = array($i => $countarray[$i]); 
       }else{ 
        $result[$year] = array($i => 0); 
       } 
      endfor; 
     endforeach; 
    endforeach; 

    return $result; 
} 

OK,知道你要构建$ dummyArray:

$dummyArray = array(
    $dummyArray1, 
    $dummyArray2, 
    $dummyArray3 
); 


$dummyArraygroup = groupMyArray($dummyArray); 

>

+0

所以,我没有测试这个代码,但理念是这样的。 – jkamizato