2012-02-28 5 views
0

Мне было трудно найти голову вокруг этого маленького фрагмента кода.Loop and 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) должно означать (в $ день вещь)? в условном условии if для второго цикла в приведенной выше функции. Спасибо, если вы поможете мне понять.

UPDATE * К сожалению, я не читал внимательно, пока я не обнаружил там было) после того, как в результате [] [] [ «к»] ... спасибо за заботу. *

Для исходного кода, у меня всегда есть уведомление о НЕ УКАЗАННЫЙ СМЕЩЕНИЕ 0. Как исправить эту ошибку?

+0

В какой строке вы получаете неопределенное смещение? –

+0

Все права защищены. – Giovani

ответ

0

для вашего Undefined Offset 0 в строке if какой-либо индекс оценивается до 0, и массив, в котором вы используете этот индекс, не имеет элемента в этом индексе.

Например (я не буду перечислять все возможности), если $range is 0 и $result[0] не существует.