2011-12-26 96 views
0
for($x=1;$x<=$total_room;$x++) 
    { 
    if($x%10==0){echo '</br>';} 
     foreach($room_status as $a=>$v) 
     { 
      $r = $v->room_no; 
      if($x == $r) 
      { 
echo '<img src="'.SITE_NAME.IMAGE_DIR.'hotel_img/book.png"'.'height="25" width="25" >'; 
       $x++; 
      } 

     } 
     if($x<=$total_room) 
     { 
     echo '|'.$x.'|' ; 
     } 
    } 

在上述循环$ tootal_room是数 和$ room_status是这个数组对象的var_dump阵列给我造成如下PHP的循环结果

0 => 
    object(stdClass)[8] 
     public 'hotel_id' => string '1' (length=1) 
     public 'room_no' => string '1' (length=1) 
     public 'start_date' => string '2011-12-14' (length=10) 
     public 'end_date' => string '2011-12-31' (length=10) 
     public 'room_type' => string 'normal' (length=6) 
    1 => 
    object(stdClass)[6] 
     public 'hotel_id' => string '1' (length=1) 
     public 'room_no' => string '5' (length=1) 
     public 'start_date' => string '2011-12-14' (length=10) 
     public 'end_date' => string '2011-12-31' (length=10) 
     public 'room_type' => string 'normal' (length=6) 
    2 => 
    object(stdClass)[9] 
     public 'hotel_id' => string '1' (length=1) 
     public 'room_no' => string '11' (length=2) 
     public 'start_date' => string '2011-12-14' (length=10) 
     public 'end_date' => string '2011-12-31' (length=10) 
     public 'room_type' => string 'normal' (length=6) 
    3 => 
    object(stdClass)[10] 
     public 'hotel_id' => string '1' (length=1) 
     public 'room_no' => string '8' (length=1) 
     public 'start_date' => string '2011-12-14' (length=10) 
     public 'end_date' => string '2011-12-31' (length=10) 
     public 'room_type' => string 'normal' (length=6) 
    4 => 
    object(stdClass)[11] 
     public 'hotel_id' => string '1' (length=1) 
     public 'room_no' => string '9' (length=1) 
     public 'start_date' => string '2011-12-14' (length=10) 
     public 'end_date' => string '2011-12-31' (length=10) 
     public 'room_type' => string 'normal' (length=6) 
    5 => 
    object(stdClass)[12] 
     public 'hotel_id' => string '1' (length=1) 
     public 'room_no' => string '4' (length=1) 
     public 'start_date' => string '2011-12-14' (length=10) 
     public 'end_date' => string '2011-12-31' (length=10) 
     public 'room_type' => string 'normal' (length=6) 
    6 => 
    object(stdClass)[13] 
     public 'hotel_id' => string '1' (length=1) 
     public 'room_no' => string '2' (length=1) 
     public 'start_date' => string '2011-12-14' (length=10) 
     public 'end_date' => string '2011-12-31' (length=10) 
     public 'room_type' => string 'normal' (length=6) 
    7 => 
    object(stdClass)[14] 
     public 'hotel_id' => string '1' (length=1) 
     public 'room_no' => string '7' (length=1) 
     public 'start_date' => string '2011-12-14' (length=10) 
     public 'end_date' => string '2011-12-31' (length=10) 
     public 'room_type' => string 'normal' (length=6) 

for循环是不是给我的期望结果为room_no 5,8等可能是这里的错误

回答

0

您正在使用X作为循环计数器,并在循环内changin X.

if ($x == $r) { 
    ... 
    $x++; 
} 

因此,如果$ X在(比方说)3匹配,将其更改为4,然后循环辊上:对于每一个被匹配的房间,你通过你的测试中递增x跳过至少有一个记录再次PHP将x增加到5,并且你现在已经跳过了测试#4。

0
usort($room_status,function ($a,$b){ 
    if($a->room_no==$b->room_no){ 
     return 0; 
    }elseif($a->room_no<$b->room_no){ 
     return -1; 
    }else{ 
     return 1; 
    } 
}); 

for($i=0,$c=count($room_status);$i<$c;$i++){ 
    echo '<img src="'.SITE_NAME.IMAGE_DIR.'hotel_img/book.png"'.'height="25" width="25" >|'.$room_status[$i]->room_no.'|'; 
}