PHP基于内容的可选行颜色
我在这里和谷歌上搜索过,但我一直无法找到一个可以集成的解决方案 我有从MySQL数据库填充的数据行,我想做的是在某个列更改时替换行颜色。例如:PHP基于内容的可选行颜色,php,Php,我在这里和谷歌上搜索过,但我一直无法找到一个可以集成的解决方案 我有从MySQL数据库填充的数据行,我想做的是在某个列更改时替换行颜色。例如: Sponsor Name John Terry John Bob John Paul Grant Peter Perry Toby Perry Gerald 所以,约翰的所有行都将有一个第1行的背景色,格兰特第2行,然后佩里将再次成为第1行 我打算做一个简单的转换,并以这种方式交替
Sponsor Name
John Terry
John Bob
John Paul
Grant Peter
Perry Toby
Perry Gerald
所以,约翰的所有行都将有一个第1行的背景色,格兰特第2行,然后佩里将再次成为第1行
我打算做一个简单的转换,并以这种方式交替进行,但由于赞助商有20种(而且越来越多)不同的可能性,我想知道是否有更简单的方法
有没有更简单的方法,或者通过switch语句来实现
干杯这里有一个实现这一目标的一般方法。如果您理解这个概念,您应该能够调整它以满足您的特定需求。基本上,在迭代查询结果时跟踪上一项。如果当前项目不同,请更改颜色
$sponsors = ['John', 'John', 'Grant', 'Perry', 'Perry'];
$color = null;
$previous_sponsor = null;
foreach ($sponsors as $sponsor) {
if ($sponsor != $previous_sponsor) {
$color = $color == 'red' ? 'green' : 'red';
$previous_sponsor = $sponsor;
}
echo "$sponsor $color<br>";
}
$赞助商=['John','John','Grant','Perry','Perry'];
$color=null;
$previous_赞助商=空;
foreach($赞助商作为$赞助商){
如果($赞助商!=$前赞助商){
$color=$color==‘红色’?‘绿色’:‘红色’;
$previous_赞助商=$赞助商;
}
回声“$赞助商$color
”;
}
这里有一个做这类事情的一般方法:
$dataArray = array(
array('sponsor' => 'John', 'name' => 'Terry'),
array('sponsor' => 'John', 'name' => 'Bob'),
array('sponsor' => 'Grant', 'name' => 'Peter'),
array('sponsor' => 'Grant', 'name' => 'Peter'),
array('sponsor' => 'John', 'name' => 'Bob'),
array('sponsor' => 'John', 'name' => 'Bob'),
array('sponsor' => 'Grant', 'name' => 'Peter'),
array('sponsor' => 'Grant', 'name' => 'Peter'),
array('sponsor' => 'John', 'name' => 'Bob'),
);
$colors = array('red', 'green', 'blue');
$currentColorIndex = 0;
echo '<table>';
foreach ($dataArray as $key => $data) {
if ((key($dataArray) > 0) && ($data['sponsor'] !== $dataArray[key($dataArray) - 1]['sponsor'])) {
$currentColorIndex = ($currentColorIndex + 1) % count($colors);
}
echo '<tr style="background-color: ' . $colors[$currentColorIndex] . '">' .
'<td>' . $data['sponsor'] . '</td>' .
'<td>' . $data['name'] . '</td>' .
'</tr>';
}
echo '</table>';
$dataArray=array(
数组(‘赞助商’=>‘John’、‘姓名’=>‘Terry’),
数组('shandor'=>'John','name'=>'Bob'),
数组('发起人'=>'授予','姓名'=>'彼得'),
数组('发起人'=>'授予','姓名'=>'彼得'),
数组('shandor'=>'John','name'=>'Bob'),
数组('shandor'=>'John','name'=>'Bob'),
数组('发起人'=>'授予','姓名'=>'彼得'),
数组('发起人'=>'授予','姓名'=>'彼得'),
数组('shandor'=>'John','name'=>'Bob'),
);
$colors=数组('red'、'green'、'blue');
$currentColorIndex=0;
回声';
foreach($dataArray作为$key=>$data){
如果((键($dataArray)>0)和($data['shandor']!==$dataArray[key($dataArray)-1]['shandor'])){
$currentColorIndex=($currentColorIndex+1)%count($colors);
}
回显“”。
“.$data[‘赞助商’]”。
'.$data['name'].''。
'';
}
回声';
如果您包含当前用于显示此数据的代码,则有人会更容易建议如何修改该代码以实现此目的。您的意思是要用两种颜色为表行着色吗?对于3个第一行颜色#1和第四行颜色#2,对于第五行和第六行颜色#1,再次对于下一行颜色#2,依此类推?你会根据什么改变颜色?你是根据赞助商名称更改颜色吗?@AliFarhoudi是的,所以颜色的更改基本上是根据赞助商名称进行的…@Don'tPanic-对不起,我现在不在我的电脑上,但这是一个显示数据的简单for循环。