簡體   English   中英

在FOREACH循環中的PHP IF語句

[英]PHP IF statement within a FOREACH loop

經過幾年的休假后再返回PHP,僅用於個人項目。

我在讓if語句在foreach循環內工作時遇到麻煩。 我試圖讓代碼在數組之一等於某個單詞的情況下回顯一個附加值。

到目前為止,我的代碼是:

$test = array('test1', 'test2', 'test3', 'test4', 'test5');

foreach ($test as $value){  
    if ($value == "test2"){
        $secondValue = "value";
    }   

    echo $value . $secondValue . "<br />";
}

我期望這將輸出以下內容:

test1
test2value
test3
test4
test5

但是它輸出...

test1
test2value
test3value
test4value
test5value

關於我要去哪里的任何想法? 非常感謝

您必須清除/重置$ value

 $test = array('test1', 'test2', 'test3', 'test4', 'test5');

 foreach ($test as $value){  
   $secondValue ="";
   if ($value == "test2"){
      $secondValue = "value";
   }   

   echo $value . $secondValue . "<br />";
 }

循環完成后,您再也不會將$secondValue重置$secondValue空字符串,因此它始終具有一個值(字面上)。

$test = array('test1', 'test2', 'test3', 'test4', 'test5');

foreach ($test as $value){  
    $secondValue = null;
    if ($value == "test2"){
        $secondValue = "value";
    }   

    echo $value . $secondValue . "<br />";
}

確保在每次迭代時重置$ secondValue。

$test = array('test1', 'test2', 'test3', 'test4', 'test5');

foreach ($test as $value){  
    $secondValue = '';
    if ($value == "test2"){
        $secondValue = "value";
}   

echo $value . $secondValue . "<br />";
}
foreach ($test as $value){  
    if ($value == "test2"){
         echo $value . $secondValue . "<br />";
    } 
   else  
    echo $value . "<br />";
}

請使用此代碼,因為這是一個簡短的答案。

$test = array('test1', 'test2', 'test3', 'test4', 'test5');
foreach ($test as $value){  
    echo $value . ($value == 'test2' ? 'value' : '') . "<br />";  
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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