根据PHP数组格式化HTML页面

时间:2012-09-27 13:00:25

标签: php sorting logic

我在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;
}

3 个答案:

答案 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;
}