我在php中有一个未排序且动态变化的数组,其中我将值存储为“蓝色”,“红色”,“绿色”。阵列的其余部分由“湿”,“干”,“潮湿”等字符串组成。现在我想在将字符串打印到我的html页面之前打印各自的标题。我怎样才能做到这一点?
上面的代码会产生问题,因为如果其它方法都被激活,在所有三种颜色都被回显之前,它会再次打印标题。
编辑:
阵列:蓝色,潮湿,绿色,潮湿,干燥,红色。
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;
}
答案 0 :(得分:1)
是的,因为你的布尔表达式不正确。它应该是
if($file == 'blue' || $file == 'red' || $file == 'green')
你写它的方式将等于
if($file == 'blue' || true || true)
如果只有一个变量等于OR
,则逻辑TRUE
表达式为TRUE
。
的修改
在第二次阅读时echo
foreach
循环之前的标题。
答案 1 :(得分:0)
if
语句语法错误。它必须是if ($file == "blue" || $file == "red" || $file == "green") {
在foreach循环之前回显标题echo "<h1>Colours</h1>";
,如下所示:
echo "<h1>Colours</h1>";
foreach($file_list as $file) {
if ($file == "blue" || "red" || "green") {
echo $file;
}
else { ...}
答案 2 :(得分: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;
}