簡體   English   中英

如何在PHP中以特定值啟動foreach循環?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM