2013-11-27 4 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]; 
} 

Проблема заключается в том, что ключи массива являются даты (месяцы) вытащили из базы данных и где, например, «январь» и значение в массиве $ lowNums, в $ highNums не всегда будет запись «январь».

Есть ли способ обнаружить любые недостающие значения в каждом массиве и заполнить их 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

Смежные вопросы