繁体   English   中英

通过单独的数组的while循环的php循环数组

[英]php loop array through separate array's while loop

我已经搜索了大约2个小时,但没有找到任何与我要执行的操作完全匹配的内容。 可能不可能,但是我认为自己是php的基础。

我有一个运行MySQL查询并使用该数据创建HTML电子邮件的php脚本。 将结果放入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]

我知道我可以完成将两个或多个变量声明为颜色并将if语句放在while循环内以在每一行交替的方式来完成此任务,但是我想看看是否可行。 我经常使用它,我更喜欢创建一个函数来处理此问题,并为其提供所需的多种颜色。

谢谢。

您可以使用一个简单的计数器并使用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>";
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM