2013-08-12 98 views
0

我們有三個陣列這樣的事情,但這些都是動態的組合成其他數組鍵多個陣列使用PHP

Array 
(
    [04/07/2013] => 2 
    [05/02/2013] => 1 
    [06/02/2013] => 1 
    [08/07/2013] => 2 
    [08/08/2013] => 3 
    [09/07/2013] => 2 
    [11/07/2013] => 1 
    [16/03/2013] => 1 
    [17/07/2013] => 1 
    [18/04/2013] => 2 
    [18/07/2013] => 1 
    [21/05/2013] => 2 
    [24/05/2013] => 8 
    [25/04/2013] => 2 
    [26/04/2013] => 1 
    [26/06/2013] => 1 
    [30/05/2013] => 1 
) 
Array 
(
    [01/08/2013] => 42 
    [02/08/2013] => 2 
    [03/08/2013] => 3 
    [07/08/2013] => 29 
    [09/08/2013] => 4 
    [10/08/2013] => 4 
    [11/08/2013] => 31 
    [19/07/2013] => 4 
    [20/07/2013] => 4 
    [22/07/2013] => 13 
    [23/07/2013] => 69 
    [29/07/2013] => 4 
    [31/07/2013] => 5 
) 
Array 
(
    [13/02/2013] => 2 
    [26/04/2013] => 2 
    [04/06/2013] => 2 
    [20/06/2013] => 2 
    [04/07/2013] => 2 
    [09/07/2013] => 1 
    [01/08/2013] => 1 
    [07/08/2013] => 1 
    [08/08/2013] => 3 
) 

我們要合併到其他數組鍵(密鑰必須保持相同)。如果所有三個數組鍵同樣把它放到同一個鍵中,另外一個聰明的方法是創建一個鍵,並把它放在數組中,如果數組有另一個鍵,則把它的值設爲零。

在這裏,我們試圖爲這個

$maximum = max($countVisi,$countClic,$countClai); 
    if($countClic==$maximum){ 
     $maxim = $clickArray; 
    }elseif($countVisi>=$maximum){ 
     $maxim = $visitArray; 
    }elseif($countClai>=$maximum){ 
     $maxim = $claimsArray; 
    }else{ 
     $maxim = $visitArray; 
    } 

我們算最大索引陣列和foreach這樣

foreach($maxim as $key=>$values){ 
     if($visitArray[$key]){ 
      $vv[$key] = $visitArray[$key]; 
     }else{ 
      $vv[$key] = 0; 
     } 
     if($clickArray[$key]){ 
      $cc[$key] = $clickArray[$key]; 
     }else{ 
      $cc[$key] = 0; 
     } 
     if($claimsArray[$key]){ 
      $kk[$key] = $claimsArray[$key]; 
     }else{ 
      $kk[$key] = 0; 
     } 
     $combineArrayNext[$key][] = $vv[$key]; 
     $combineArrayNext[$key][] = $cc[$key]; 
     $combineArrayNext[$key][] = $kk[$key]; 
     //$vvvvv = explode('/' , $key); 
     //$myKey[$key] = "'".date('d M Y' , strtotime($vvvvv[2]."/".$vvvvv[1]."/".$vvvvv[0]))."'"; 
    } 

問題環路是,我們是按照最大陣列只得到key.It離開最大陣列中不存在的鑰匙。

對不起,我想你明白我的問題。請與我們分享一些想法來解決我的問題。

感謝

+0

爲了更好地理解打印結果數組應該是什麼樣子。 –

+0

我不明白你的解釋。你的代碼使用6個數組,而你只顯示3個。而你沒有給出像u_mulder請求的結果的例子。你如何期望任何人提供幫助? –

回答

0

希望這個代碼可以幫助你:

$dates = array_merge(array_keys($arr1), array_keys($arr2), array_keys($arr3)); 
foreach($dates as $date) { 
    $new_arr[$date] = array('click' => isset($arr1[$date])? $arr1[$date] : 0, 
          'visit' => isset($arr2[$date])? $arr2[$date] : 0, 
          'claim' => isset($arr3[$date])? $arr3[$date] : 0); 
}