几年后回到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
关于我哪里出错的任何想法? 非常感谢
答案 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 />";
}