PHP获取列表的每三项

时间:2015-06-26 13:38:29

标签: php

我使用此代码在奇数/偶数元素的类之间切换:

<li class="<?php echo ($key%2) ? "odd" : "even";>

如何获得每个第3项,添加ex。课程&#39;一个&#39;,&#39;二,&#39;三&#39;?

6 个答案:

答案 0 :(得分:2)

有很多方法。这是一个“oneliner”:

<li class="<?php $t=$key%3; echo ($t==0?"one":$t==1?"two":"three");>

如果您获得的项目超过3项,则可以通过switch语句获得更易于管理的代码:

<?php

switch($key%4){
case(0): echo "one"; break;
case(1): echo "two"; break;
case(2): echo "three"; break;
case(3): echo "four"; break;
}

?>

答案 1 :(得分:1)

单线程很难,但你可以使用开关: <?php switch($key%3): case 0: echo "one"; break; case 1: echo "two"; break; case 2: echo "three"; break; ?>

要清理HTML文件,可以将此switch语句放入函数中。

答案 2 :(得分:0)

如果你的循环中有你的计数器,只需使用modulo并检查它是否为0.然后你可以添加特定的类。

if ($i % 3 == 0) { }

答案 3 :(得分:0)

$1

答案 4 :(得分:0)

<?php
$classes = array('first','second','third');
for ($i = 1; $i < 100; $i++) {
    echo $i.' class: ' .current($classes);    
    if(!next($classes))
    {
        // reset if there is end of array
        reset($classes);
    }    
    echo '<br/>';
}

弹性解决方案,你可以通过修改$ classes数组来拥有3,4,5 ...类。 也很快,不需要划分大数,只需用正确的odrder中列出的类重复小数组

答案 5 :(得分:0)

如果您想要干净的HTML,请定义如下所示的函数

它会将default类应用于每个元素,将even类应用于每个第二个元素,将third类应用于每个第三个元素,您可以根据需要对其进行扩展,

function apply_class($i)
{
    $every = 'default';
    $every_second = 'even';
    $every_third = 'third';

    $return [] = 'default';
    if ( $i%2 == 0 ) { $return [] = $every_second; }
    if ( $i%3 == 0 ) { $return [] = $every_third; }

    return implode(' ', $return);
}

使用它,

<li class="<?php echo apply_class($i)?>" > </li>

将呈现HTML,

$i

1   <li class="default"> </li>
2   <li class="default even"> </li>
3   <li class="default third"> </li>
4   <li class="default even"> </li>
5   <li class="default"> </li>
6   <li class="default even third"> </li>
7   <li class="default"> </li>
8   <li class="default even"> </li>
9   <li class="default third"> </li>
10  <li class="default even"> </li>