gpt4 book ai didi

php - 当下一个值与前一个值不同时更改单元格的背景颜色

转载 作者:行者123 更新时间:2023-11-28 01:24:16 24 4
gpt4 key购买 nike

我已经在 Stack 上工作多年,但这是我第一次发帖。我在一个网站 (php + mysql) 上工作,下面的问题让我非常抓狂。

我有一个包含 2 列的表格:大小和金额。该表是由一个基本的 php 脚本生成的,它只是将存储在数据库中的值作为表中的行输出。 super 基础,没有花哨的东西:

SELECT Size, Amount FROM database WHERE product = 'product123' ORDER BY Size ASC

php echo 输出一个 html 表,显示大小和相应的可用包(数量)。

Echo '<td>'.$record['size'].'</td><td>'.$record['amount'].'</td>'

一些尺码有不同的数量,因此一个特定的尺码可以出现多次。示例:

Size | Amount
1 | 10
1 | 50
2 | 10
2+ | 10
3 | 40
3+ | 25
3+ | 40
4+ | 25

我想要实现的是包含相同大小的行具有相同的背景颜色。因此它应该交替,按大小分组,不幸的是这是不规则的。示例:

Size | Amount
1 | 10 < yellow
1 | 50 < yellow
2 | 10 < transparent
2+ | 10 < yellow
3 | 40 < transparent
3+ | 25 < yellow
3+ | 40 < yellow
4+ | 25 < transparent

因此,如果下一个 Size 与前一个不同,则行背景颜色应该更改。通过这种方式,单个尺寸交替突出显示为一个组。请注意,2 号和 2+ 号(3 号和 3+ 号相同)被认为是不同的尺寸,因此背景颜色应该改变。

我不知道如何用 php 实现这个。困难在于我不能使用基于奇数/偶数的评估,因为有时会涉及“+”,而不是所有尺寸的数值。 不幸的是,更改命名方案以摆脱“+”并不是一种选择。

我正在考虑以某种方式让 php 检查,同时逐行生成表,如果下一个输出的大小与前一个相同。如果是:bg-color 没有变化。如果否:更改 bg-color。但是我无法弄清楚编写这样的代码的最佳方法是什么。非常感谢任何指向正确方向的指示。

最佳答案

只是一个MCVE :

// your data
$records[] = array('size' => "1");
$records[] = array('size' => "1");
$records[] = array('size' => "2");
$records[] = array('size' => "2+");
$records[] = array('size' => "3");
$records[] = array('size' => "3+");
$records[] = array('size' => "3+");
$records[] = array('size' => "4");

$lastSize = $records[0]['size'];
$color = "yellow";

foreach ($records as $record) {
if ($lastSize != $record['size']) {
$lastSize = $record['size'];
if ($color == "yellow") $color = "transparent";
else $color = "yellow";
}
$lastSize == $record['size'];
echo $record['size'].' - '.$color.'<br>';
}

// OUTPUT:
// 1 - yellow
// 1 - yellow
// 2 - transparent
// 2+ - yellow
// 3 - transparent
// 3+ - yellow
// 3+ - yellow
// 4 - transparent

关于php - 当下一个值与前一个值不同时更改单元格的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32752068/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com