【问题标题】:Change colors of text based on while loop from an array of colors根据颜色数组中的while循环更改文本颜色
【发布时间】:2018-02-24 16:53:51
【问题描述】:

我想在一个while循环中运行一个forloop,这样我就可以相应地改变文本的颜色。这是我的代码

       $leftBrdColorArray = array("g-brd-blue-left", "g-brd-red-left", "g-brd-black-left", "g-brd-yellow-left");
        $rowCount = $runselectGameInfo -> num_rows; //3 is the count
         if($runselectGameInfo -> num_rows > 0){
           while($getGameInfo = $runselectGameInfo -> fetch_assoc()){

             for($i = 0; $i <= $rowCount; $i++){

           Hello <div class="<?php echo $leftBrdColorArray[$i];?>">World</div>
         }
    }
}

但它会打印行数的 12 次,即 3。

【问题讨论】:

  • 当然!你循环了两次!!你的 while 和 for 循环是一样的。
  • while 循环可能会运行两次。对于每次运行,for 循环运行 3 次。 $runselectGameInfo -&gt; fetch_assoc() 有 2 个结果。在while 循环内但在for 循环外创建一个echo 语句以测试它运行了多少次
  • 如果可能的话,你能用代码来说明。我如何做到这一点?
  • for 循环运行 $i 的值,从 0 到 3(含),即 4 次。你确定你得到了 6 次打印?
  • @BRAHMANANDAMOHANTYBRAHMA,你做了我建议的测试吗?

标签: php for-loop while-loop


【解决方案1】:

如果您想每次只打印一种不同的颜色,但不一定要全部打印 4 种颜色(对于每一行),那么应该执行以下操作:

$leftBrdColorArray = array("g-brd-blue-left", "g-brd-red-left", "g-brd-black-left", "g-brd-yellow-left");
$arrsize = count($leftBrdColorArray);
        $rowCount = $runselectGameInfo -> num_rows; //3 is the count
         if($runselectGameInfo -> num_rows > 0){
           i=0;
           while($getGameInfo = $runselectGameInfo -> fetch_assoc()){
             if($i > $arrsize - 1) $i = 0;
             echo 'Hello <div class="$leftBrdColorArray[$i]">World</div>';
             i++;
         }
    }

这里的问题是,如果您的行数多于颜色...您必须对其进行管理并添加逻辑以获取数组范围内的颜色。

【讨论】:

  • 是的,这正是我想要实现的,我正在尝试获取逻辑,因为一旦循环的行数超过我的颜色,它将被清空。但我希望它运行并重复颜色。
  • 我刚刚编辑了答案。您必须知道颜色数组的大小并检查是否已到达最后一个,将其恢复为零。我没有测试,但这应该可以。
  • 是的,这个正在工作。
猜你喜欢
  • 2016-06-02
  • 1970-01-01
  • 2015-12-31
  • 2023-01-12
  • 1970-01-01
  • 2019-11-25
  • 1970-01-01
  • 2017-03-09
  • 2014-07-16
相关资源
最近更新 更多