2009-11-05 137 views
4

說,我想通過XML節點的循環,但我想忽略第一個10後限制我搶分至10限制和偏移foreach循環

$limit=10; //define results limit 
$o=20; //define offset 
$i=0; //start line counter 

foreach($xml->id AS $key => $value){ 
    $i++; 
    if($i > $o){ 
    //if line number is less than offset, do nothing. 
    }else{ 
    if($i == "$limit"){break;} //if line is over limit, break out of loop 
    //do stuff here 
    } 
} 
在這個例子中

所以,身份證要開始在結果20上,只顯示10個結果,然後跳出循環。它雖然不工作。有什麼想法嗎?

+0

請參閱此處:[http://stackoverflow.com /questions/1679559](http://stackoverflow.com/questions/1679559) –

回答

6

那裏有多個錯誤。它應該是

foreach (... 
    if ($i++ < $o) continue; 
    if ($i > $o + $limit) break; 
    // do your stuff here 
} 
+0

非常感謝你的代碼。 – whitesiroi

0
if($i == $limit+$o){break;} 

你應該使用原因$limit爲$Ø之前到達

0

您可以使用next()函數爲你的數組元素:

$limit=10; //define results limit 
$o=20; //define offset 
$i=0; //start line counter 

for ($j = 0; $j < $o; $j++) { 
    next($xml->id); 
} 

foreach($xml->id AS $key => $value){ 
     $i++; 
     if($i > $o){ 
     //if line number is less than offset, do nothing. 
     }else{ 
     if($i == "$limit"){break;} //if line is over limit, break out of loop 
     //do stuff here 
     } 
} 

更多有關next()函數的信息:http://php.net/manual/en/function.next.php