php循环数组

piv4azn7  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(394)

我已经搜索了大约2个小时,没有找到任何具体匹配我要做的。这可能是不可能的,但我认为我自己基本上与php。
我有一个php脚本,它运行一个mysql查询并使用该数据创建一个html电子邮件。结果被放入while循环中,用于迭代并为n个结果行创建html表行。我的主要目标是在mysql结果数组之外使用一个单独的数组,该数组包含每行的交替bgcolor,并在mysql结果数组中放置一个函数,该函数在我选择的n种颜色之间交替。我对其他解决方案完全开放,以尽可能少地使用代码行。
以下是不完整的非工作代码的基本外观(使用假颜色名称以提高可读性):

$shade = array("red","blue","green");
$sql1 = "MySQL Query";
$sql1Handle = MySqlQuery($sql1,$DBLink);
while($sql1Data = mysql_fetch_row($sql1Handle))
{
    $htmlText .= "<tr bgcolor = \"".$shade[0]."\"><td>".$sql1Data[0]."</td><td>".$sql1Data[1]."</td><td>".$sql1Data[2]."</td></tr>";
}

预期的彩色结果是(如果mysql结果有7行):
红行$sql1data[0]$sql1data[1]$sql1data[2]
蓝色$sql1data[0]$sql1data[1]$sql1data[2]
绿色$sql1data[0]$sql1data[1]$sql1data[2]
红色$sql1data[0]$sql1data[1]$sql1data[2]
蓝色$sql1data[0]$sql1data[1]$sql1data[2]
绿色$sql1data[0]$sql1data[1]$sql1data[2]
红色$sql1data[0]$sql1data[1]$sql1data[2]
我知道我可以完成这个任务,将两个或更多的变量声明为颜色,并在while循环中放置if语句以在每一行上交替执行,但是我想看看这是否可行。我经常使用它,我更喜欢创建一个函数来处理这个问题,并为它提供我想要的任何颜色。
谢谢。

rdlzhqv9

rdlzhqv91#

您可以使用一个简单的计数器和mod运算符 % 使用 $current++ 每次移动到下一个阴影。。。

$shade = array("red","blue","green");
// Which is the current shade to use
$current = 0;
// Store count so that it is dynamic
$shadeCount = count($shade);
$sql1 = "MySQL Query";
$sql1Handle = MySqlQuery($sql1,$DBLink);
while($sql1Data = mysql_fetch_row($sql1Handle))
{
    $htmlText .= "<tr bgcolor = \"".$shade[$current++ % $shadeCount]."\"><td>".$sql1Data[0]."</td><td>".$sql1Data[1]."</td><td>".$sql1Data[2]."</td></tr>";
}

相关问题