PHP-在foreach中动态设置CSS类
我正在生成一系列链接,其中包含CSS应用的相关颜色栏。有5种阴影会降低不透明度,从100开始,向下以20为增量。因此,如果我有10行,它会像这样:PHP-在foreach中动态设置CSS类,php,foreach,Php,Foreach,我正在生成一系列链接,其中包含CSS应用的相关颜色栏。有5种阴影会降低不透明度,从100开始,向下以20为增量。因此,如果我有10行,它会像这样: 我将使用%运算符,它给出除法的剩余部分: $i = 0; for ($linkItems as $item) { $linkColour = 'linkcolour'; $mod = $i % 5; if ($mod != 0) { $linkColour .= '
我将使用
%
运算符,它给出除法的剩余部分:
$i = 0;
for ($linkItems as $item) {
$linkColour = 'linkcolour';
$mod = $i % 5;
if ($mod != 0) {
$linkColour .= ' o'.(100 - (20 * $mod)) ;
}
echo $linkColour."\n";
$i++;
}
例如:
,因为:3%5->3
3/5=0*5+3
,因为:6%5->1
6/5=1*5+1
0
是5的倍数,那么就不应用该类
否则,您可以将余数乘以20,然后将其减到100,以更正类
1%5=1->等级为100-1*20=80
2%5=2->等级为100-2*20=60
5%5=0->不添加类
linkcolour
linkcolour o80
linkcolour o60
linkcolour o40
linkcolour o20
linkcolour
linkcolour o80
linkcolour o60
...
你可以用多种方法来解决这个问题。 例如,您可以在数组中声明可用的CSS类并循环它们。在修改示例时,可以使用如下内容
<?php
$linkColourArray = ["","o80","o60","o40","o20"];
$count = 0;
foreach($linkItems as $item) {
$linkItem = $item->getField('Link');
$colourIndex = $count%5;
$linkColour = $linkColourArray[$colourIndex];
$count++;
?>
<a href="link.php">
<span class="linkcolour <?php echo $linkColour; ?>"></span>
<span class="linkText"><?php echo $linkItem; ?></span>
</a>
<?php
} // foreach $linkItems
?>
创建一个数组,只需遍历该数组即可获得如下值
<?php
$arraycolor = array('linkcolour','linkcolour o80','linkcolour o60','linkcolour o40','linkcolour o20');
$link = array('1','2','3','4','5','6','7','8','9','10');
$i=0;
foreach($link as $v)
{
?>
<a href="link.php">
<span class="<?php echo $arraycolor[$i] ?>"></span>
<span class="linkText"><?php echo $arraycolor[$i] ?></span>
</a>
<br/>
<?php
$i++;
if($i==count($arraycolor))
{
$i=0;
}
}
?>
在foreach循环中,您可以根据键对foreach($key=>$item的linkItems){}进行键和值设置,您可以编写一个开关大小写并向其添加类。
linkcolour
linkcolour o80
linkcolour o60
linkcolour o40
linkcolour o20
linkcolour
linkcolour o80
linkcolour o60
linkcolour o40
linkcolour o20