[英]PHP - Alternate row colours based on a 'grouping' value in an array
這可能是一個簡單的答案,但我還是無法理解它。
我有以下數組:
Array
(
[0] => Array
(
[meeting_grouping] => 1
[client_first_name] => Nikolay
)
[1] => Array
(
[meeting_grouping] => 1
[client_first_name] => Konstantin
)
[2] => Array
(
[meeting_grouping] => 1
[client_first_name] => Andrey
)
[3] => Array
(
[meeting_grouping] => 4
[client_first_name] => Eddie
)
[4] => Array
(
[meeting_grouping] => 4
[client_first_name] => Neil
)
[5] => Array
(
[meeting_grouping] => 6
[client_first_name] => Ian
)
[6] => Array
(
[meeting_grouping] => 6
[client_first_name] => Mark
)
)
我想要做的是將這些數據輸出到HTML表格並對行進行顏色編碼。 我知道如何交替行顏色,但在這種情況下,我需要根據'meeting_grouping'對其進行顏色編碼。 即Nikolay,Konstantin和Andrey(meeting_grouping = 1)將具有灰色背景,Eddie和Neil(meeting_grouping = 4)將具有白色背景並且Ian和Mark(meeting_grouping = 6)將再次具有灰色背景。
如果有人能指出我正確的方向,我將不勝感激。
提前致謝!
如果你需要任意風格的不同分組
將其輸出到HTML表時,請將具有分組編號的類名分配給行。 然后你應該只為CSS中的每個組定義樣式,當然還有默認樣式,以防出現一些新的分組。
例如,該表可能是:
<table>
<tr class="meeting_grouping1">
<td>Konstantin</td>
</tr>
<tr class="meeting_grouping1">
<td>Andrey</td>
</tr>
<tr class="meeting_grouping4">
<td>Eddie</td>
</tr>
<tr class="meeting_grouping4">
<td>Neil</td>
</tr>
<tr class="meeting_grouping6">
<td>Ivan</td>
</tr>
<tr class="meeting_grouping6">
<td>Mark</td>
</tr>
</table>
然后在CSS中定義你的樣式:
tr td
{
background-color: white;
}
tr.metting_grouping1 td
{
background-color: grey;
}
tr.metting_grouping4 td
{
background-color: white;
}
tr.metting_grouping1 td
{
background-color: grey;
}
如果你只是需要交替顏色的不同分組
當遍歷數組以准備表時,檢查前一行的meeting_grouping值以查看它是否相同。 如果不相同,請將樣式切換為交替樣式。 在PHP中它可能看起來像這樣:
$use_alternate_style = false;
$previous_grouping = false;
foreach ($meeting_groupings as $entry)
{
if ($entry['meeting_grouping'] != $previous_grouping)
{
// Inverses the alternate style indicator
$use_alternate_style = !$use_alternate_style;
}
// Stores the grouping number for the next cycle
$previous_grouping = $entry['meeting_grouping'];
// Depending on whether $use_alternate_style is true or not, you
// add a class name to the table row and then assign background colors
// similarly as in the above HTML/CSS example.
}
您可以創建一個將meeting_grouping
映射到相應顏色的數組,例如:
$colours = array(
1 => 'grey',
4 => 'white',
6 => 'grey'
);
然后當你迭代你的數組時,只需echo $colours[$meeting_grouping_var];
(其中$meeting_grouping_var
是當前的meeting_grouping
值)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.