FOREACH循环中的PHP IF语句

时间:2016-07-08 19:40:24

标签: php

几年后回到PHP,仅用于个人项目。

我无法在foreach循环中使用if语句。我试图让代码在其中一个数组等于某个单词时回显一个额外的值。

我到目前为止的代码是:

$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

关于我哪里出错的任何想法? 非常感谢

5 个答案:

答案 0 :(得分:2)

您必须清除/重置$ value

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

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

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

答案 1 :(得分:1)

在循环完成后,你永远不会将$secondValue重置为空字符串,因此它总是有一个值(字面意思)。

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

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

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

答案 2 :(得分:0)

确保在每次迭代时重置$ secondValue。

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

答案 3 :(得分:0)

I. NULL
  A. NULL
    1. Item Orphan <-- no category or group
  B. Group Red <-- no category
    1. Item Apple
    2. Item Banana
II. Category Bacon
  A. Group Blue
  B. Group Taupe
    1. Item Kiwi
    2. Item Watermelon
III. Category Atari
  A. Group Silver
IV. Category Maui
...

答案 4 :(得分:0)

请使用此代码,因为这是一个简短的答案。

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