簡體   English   中英

PHP - 基於數組中“分組”值的備用行顏色

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM