在PHP中使用4种不同颜色交替更改颜色

问题描述 投票:-5回答:2

我做了很多关于它的研究,但我最终只使用了2种不同的颜色而不是4.我想要的是使用4种不同的颜色(blueredgreenyellow)交替改变颜色。我所拥有的只是两种颜色。请参阅下面的代码:

<?php $colors_counter = 0; ?>
@foreach($posts as $post)

  <div class="header-{{ ($colors_counter%2 == 0) ? 'blue' : 'red' : 'green' : 'yellow' }}">
    {{ $post->name }}
  </div>

  <?php $colors_counter++; ?>
@endforeach

注意:我也在使用laravel 5。

php html css laravel-5
2个回答
2
投票

简单可扩展的方案

您可以将颜色放在单独的数组中,并采用总计数的mod值来交替行之间的颜色。

这个解决方案是可扩展的,适用于跨N行数的M颜色。

这样,即使您修改颜色或行数,代码也会起作用。

可伸缩代码逻辑

$colors = [
    'blue'
    'red',
    'green',
    'yellow',
];
$no = count($colors);

// Then use this inside the loop
$colors[$colors_counter % $no];

$colors = [
    'blue',
    'red',
    'green',
    'yellow',
];

$no = count($colors);

for ($i=0;$i < 10; $i++) {
  echo $colors[$i % $no]."\n";  
}

产量

blue
red
green
yellow
blue
red
green
yellow
blue
red

2
投票

你应该定义颜色数组并使用colors_counter作为数组索引。

<?php
  $colors_counter = 0;
  $colors = array(0=>"blue", 1=>"red", 2=>"green", 3=>"yellow");
?>
@foreach($posts as $post)

  <div class="header-{{ $colors[$colors_counter] }}">
    {{ $post->name }}
  </div>

  <?php $colors_counter++; ?>
@endforeach
© www.soinside.com 2019 - 2024. All rights reserved.