Php 将颜色数组插入foreach循环

Php 将颜色数组插入foreach循环,php,arrays,loops,foreach,array-push,Php,Arrays,Loops,Foreach,Array Push,如果有重复的问题,请告诉我,我已尝试进行研究。$legend=array(); (color1) msg - count (color2) msg - count (color3) msg - count etc.. $color[]=('000000','ff0000','fasd3f'); $colorSize=计数($color); foreach($stats作为$row){ 如果($row->countofmsg>0){ 数组推送($legend,“.ucwords($row->ms

如果有重复的问题,请告诉我,我已尝试进行研究。

$legend=array();
(color1) msg - count
(color2) msg - count
(color3) msg - count
etc..
$color[]=('000000','ff0000','fasd3f'); $colorSize=计数($color); foreach($stats作为$row){ 如果($row->countofmsg>0){ 数组推送($legend,“.ucwords($row->msg)。“$row->count”); } }
由@watcher advice编辑,但我知道正确答案很久以前就发布了。

$legend=array();
$color[]=('000000','ff0000','fasd3f');
$colorSize=计数($color);
foreach($stats作为$row){
如果($row->countofmsg>0){
数组推送($legend,“.ucwords($row->msg)。“$row->count”);
}
}

由@watcher advice编辑,但我知道正确答案很久以前就发布了。

使用模,如下所述:

除非在您的情况下,请执行%3而不是%2


$color=$colors[$i%3];//其中,$i是当前行

使用模,如下所述:

除非在您的情况下,请执行%3而不是%2


$color=$colors[$i%3];//其中$i是当前行

这假设您的
$stats
数组是整数索引的

$legend = array();
$color[] = ('000000', 'ff0000', 'fasd3f');
$colorSize = count($color);

foreach ($stats as $row) {
    if ($row->countofmsg > 0) {
        array_push($legend, "<div class='legend_label'><div class='color-block' style='background:#".$color[(3 % $colorSize)].";'></div>".ucwords($row->msg)."<div class='legend_count'>$row->count</div></div><div class='clear'></div>");
    }
}
$legend=array();
$color[]=('000000','ff0000','fasd3f');
$colorCount=计数($color);
foreach($k=>$row){
如果($row->countofmsg>0){
$legend[]=“”.ucwords($row->msg)。“$row->count”;
}
}

这假设您的
$stats
数组是整数索引的

$legend = array();
$color[] = ('000000', 'ff0000', 'fasd3f');
$colorSize = count($color);

foreach ($stats as $row) {
    if ($row->countofmsg > 0) {
        array_push($legend, "<div class='legend_label'><div class='color-block' style='background:#".$color[(3 % $colorSize)].";'></div>".ucwords($row->msg)."<div class='legend_count'>$row->count</div></div><div class='clear'></div>");
    }
}
$legend=array();
$color[]=('000000','ff0000','fasd3f');
$colorCount=计数($color);
foreach($k=>$row){
如果($row->countofmsg>0){
$legend[]=“”.ucwords($row->msg)。“$row->count”;
}
}

$i
变为3时会发生什么<代码>$color[3]未定义。@观察者:我以为只要有多少行,就会有多少种颜色。。。那是个坏主意。。。抱歉。@shaddyx别担心。您可以轻松地使代码正常工作,只需在进入循环之前获取颜色数组的计数,而不是引用
$color[$i]
,而是引用
$color[($i%$colorSize)]
。@watcher编辑过,但我对这一项不太满意。。。我宁愿删除它:-)当
$I
变为3时会发生什么<代码>$color[3]未定义。@观察者:我以为只要有多少行,就会有多少种颜色。。。那是个坏主意。。。抱歉。@shaddyx别担心。您可以轻松地使代码正常工作,只需在进入循环之前获取颜色数组的计数,而不是引用
$color[$i]
,而是引用
$color[($i%$colorSize)]
。@watcher编辑过,但我对这一项不太满意。。。我宁愿删除它:-)@Jamund'因为这是“最好”的方式:P@K_G没问题,很高兴我们能提供帮助。我被困在I++区域,以及如何让它重复。@Jamund'因为这是“最好”的方法:P@K_G没问题,很高兴我们能帮上忙。我被困在I++区域,以及如何让它重复。
$legend = array();
$color[] = ('000000', 'ff0000', 'fasd3f');
$colorCount = count($color);
foreach ($stats as $k => $row) {
    if ($row->countofmsg > 0) {
            $legend[] = "<div class='legend_label'><div class='color-block' style='background:#".$color[ ($k % $colorCount) ].";'></div>".ucwords($row->msg)."<div class='legend_count'>$row->count</div></div><div class='clear'></div>";
    }
}