2013-11-27 57 views
1

我有當陣列是等長的,其工作只是正常的情況如下:從另一個不等陣列減去數組值

(實施例)

$highNums = array(10,20,30,40,50,60); 
$lowNums = array(0,1,2,3,4,5); 

$result = array(); 
for($i=0;$i<count($highNums);$i++) 
{ 
    $result[$i] = $highNums[$i]-$lowNums[$i]; 
} 

問題在於,該數組鍵是從數據庫中提取的日期(月)以及存在的'1月'和$ lowNums數組中的值在$ highNums中不會總是'1月'記錄。

是否有任何方法來檢測每個數組中的任何缺失值並填充0? }

+1

當然。掃描陣列並檢測丟失的月份。 'if(isset($ lowNumbers ['jan'])){...}'。 –

回答

2
foreach ($highNums as $key=>$val) { 

    if(array_key_exists($key, $lowNums)){ 
      $result[$key] = $highNums[$key]-$lowNums[$key]; 
    }else{ 
      $result[$key]=0; 
    } 

} 
+0

完美!謝謝 – user1871949