[英]How to start a foreach loop with a specific value in PHP?
我需要為每個循環以某個值開始,例如foreach($somedata as $data)
在這里,我只想在該數據的值是“某物”時才開始做一些事情
我只想在特定值后才開始做某事。
foreach($somedata as $data){
if($data == 'Something'){
//start processing, ignore all the before elements.
}
}
我嘗試break
continue
但似乎沒有任何工作如我所願
為了清楚起見,最好在循環處理數組之前對其進行預處理。 這樣,循環內的邏輯就可以完全專注於應該做的事情。
$arr = ['foo', 'something', 'bar'];
$toProcess = array_slice($arr, array_search('something', $arr));
foreach ($toProcess as $element) {
echo $element, PHP_EOL;
}
輸出
something
bar
如何使用指標變量來實現這一目標。
$starter = 0;
foreach($somedata as $data){
if($data == 'Something'){
$starter = 1;
}
if(starter == 1){
//start processing, ignore all the before elements.
}
}
無論是否已經遇到所需的值,您都需要保留一個標志:
$skip = true;
foreach (... as $data) {
if ($data == 'something') {
$skip = false;
}
if ($skip) {
continue;
}
// do something
}
$skip = true;
foreach($somedata as $data){
if($data == 'Something'){
$skip = false;
}
if($skip) {
continue;
}
//start processing, ignore all before $skip == false.
}
如果僅從識別一個值開始就處理這些值,則可以使用標志:
$flag = false;
foreach($somedata as $data){
if($flag OR $data == 'Something'){
$flag = true;
// processing some stuff
}
}
一旦將標志重置為true
,無論當前值是多少, if
的內容都會被執行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.