2012-02-28 56 views
0

我已經很難找到我的頭了這一小段代碼。循環和AND條件子句

protected function compressLowest($lowest){ 
    $result = array(); 
    $result['morning'] = array(); 
    $result['afternoon'] = array(); 
    $result['evening'] = array(); 
    $result['allDay'] = array(); 
    $type = $this->prices->getCondType(); 
    $lastDate = 0; 
    $i = array(); 
    $i['morning'] = $i['afternoon'] = $i['evening'] = $i['allDay'] = 0; 

    foreach($lowest as $date => $prices){ 
     foreach($prices as $range => $price) { 
      if($this->isNextDay($date, $result[$range][$i[$range]]['to']) && $result[$range][$i[$range]]['price'] == $price){ 
       $result[$range][$i[$range]]['to'] = $date; 
      } else { 
       $i[$range] = count($result[$range]); 
       $result[$range][] = array(); 
       $result[$range][$i[$range]]['from'] = $date; 
       $result[$range][$i[$range]]['to'] = $date; 
       $result[$range][$i[$range]]['price'] = $price; 
     $result[$range][$i[$range]]['destime']=$this->arr['destime']; 
     $result[$range][$i[$range]]['deptime']=$this->arr['deptime']; 
     $result[$range][$i[$range]]['flight']=$this->arr['flight']; 
      } 
     } 
     $lastDate = $date; 
    } 
//print_r($result);exit(); 
    return $result; 

}

而且IsNextDay如下

protected function isNextDay($next, $day){ 
     if($next - $day == 86400){ //60*60*24 = 86400 
      return true; 
     } else { 
      return false; 
     } 
    } 

我無法弄清楚什麼是 isNextDay($date, $result[$range][$i[$range]]['to']) && $result[$range][$i[$range]]['price'] == $price)解釋是:($的東西一天)被選中? 在上述函數的第二個for循環的if條件子句中。謝謝,如果你能幫助我理解。

UPDATE * 對不起,我沒仔細看它,直到我的結果[] []後發現有)「到」] ...謝謝你的關心。 *

對於上面的源代碼,我總是有一個UNDEFINED OFFSET 0的通知。如何解決這個問題?

+0

你在哪一行得到未定義的偏移量? – 2012-02-28 07:42:20

+0

依然在該如果行 – Giovani 2012-02-28 07:45:02

回答

0

對於您的未定義偏移量0在if行某些索引計算爲0並且您使用該索引的數組在該索引處沒有元素。

例如(我不會列出所有的可能性)如果$range0$result[0]是不存在的。