0

我在 php 中有一个未排序且动态变化的数组,其中我的值存储为“蓝色”、“红色”、“绿色”。数组的其余部分由诸如“湿”、“干”、“湿”之类的字符串组成。现在我想在将字符串打印到我的 html 页面之前打印相应的标题。我怎样才能做到这一点?

上面的代码会产生问题,因为如果 else 触发,在所有三种颜色都回显出来之前,它会再次打印标题。

编辑:

阵列:蓝色、潮湿、绿色、潮湿、干燥、红色。

echo "<h3>Color</h3><br>";
foreach($array as $value){
if ($value == "blue" || $value == "red" || $value == "green") {
    echo $value;
}
echo "<h3>Weather</h3><br>";
foreach($array as $value){
if ($value != "blue" || $value != "red" || $value != "green") {
    echo $value;
}
4

3 回答 3

1

是的,因为您的布尔表达式不正确。它应该是

if($file == 'blue' || $file == 'red' || $file == 'green')

你写它的方式将等于

if($file == 'blue' || true || true)

并且在逻辑OR表达式中,TRUE如果只有一个变量等于TRUE
编辑
在第二次阅读时,循环echo前的标题。foreach

于 2012-09-27T13:04:04.500 回答
0

if语句语法错误。它需要是if ($file == "blue" || $file == "red" || $file == "green") {

echo "<h1>Colours</h1>";在 foreach 循环之前回显标题,如下所示:

       echo "<h1>Colours</h1>";      
       foreach($file_list as $file) {

      if ($file == "blue" || "red" || "green") {        
         echo $file;
        }
      else { ...}
于 2012-09-27T13:03:55.060 回答
0

我自己得到了。在第二个 foreach 循环中更改逻辑 OR 确实只打印出预期的天气状况。

echo "<h3>Color</h3><br>";
foreach($array as $value){
if ($value == "blue" || $value == "red" || $value == "green") {
    echo $value;
}
echo "<h3>Weather</h3><br>";
foreach($array as $value){
if ($value != "blue" && $value != "red" && $value != "green") {
    echo $value;
}
于 2012-09-27T13:27:31.810 回答