循环和AND条件子句

时间:2012-02-28 06:58:01

标签: php

我很难理解这段代码。

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)应该是什么意思($ day事情)? 在上面函数中第二个for循环的if条件子句中。谢谢你,如果你能帮助我理解。

更新 * 很抱歉,在结果[] [] ['to']后,我没有仔细阅读,直到我发现... ...感谢您的关注。 *

对于上面的源代码,我总是注意到 UNDEFINED OFFSET 0 。如何解决这个错误?

1 个答案:

答案 0 :(得分:0)

对于if行的Undefined Offset 0,某些索引的计算结果为0,而您使用该索引的数组在该索引处没有元素。

例如(如果$range0并且$result[0]不存在,我将不会列出所有可能性。