为了账号安全,请及时绑定邮箱和手机立即绑定

如何计算while循环中的元素并应用css类?

如何计算while循环中的元素并应用css类?

PHP
扬帆大鱼 2022-01-14 18:13:01
我有一个来自 ACF 的中继器,我想要的是循环和计数项目,并根据计数的项目输出一个特定的 css 类。我能否获得帮助,以便 css 类的输出取决于计数的项目。例如,如果有六个项目,则该类将是 col-6 等...<?php     if( have_rows('rainbow') ):    $counter = 0;    while( have_rows('rainbow') ): the_row();        // vars        $name = get_sub_field('name');        $age = get_sub_field('age');        $cssClass = 'col';        for($i = 0; $i < $counter; $i++) {            if($counter === 6) {                $cssClass = 'col-lg-4';            } elseif ($counter == 4) {                $cssClass = 'col-xl-6';            }            else {                $cssClass = 'col';            }        }        echo '<div class=\'' . $cssClass. '\'>';            echo "<h4>" . $name . "</h4>";            echo "<p>" . $age . "</p>";            echo $counter;        echo '</div>';        $counter++;    endwhile;endif; ?>
查看完整描述

2 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

不知道你为什么在这里使用for循环,$i < $counter这个条件不能成立,因为$i它们$counter都是从 0 开始的。所以0 < 0 == FALSE


您只需要删除for循环内的while循环。


或者,如果您for在代码中的其他地方使用循环,那么您可以将条件移到for循环之外。


第二种解决方案: 其次,如果你$counter从 1 开始,那么你可以达到你想要的结果,如给定的例子:


<?php

$array = array(1,2,3,4,5,6);

$counter = 1;

foreach ($array as $key => $value) {

    $cssClass = 'col';

    for($i = 0; $i < $counter; $i++) {

        if($counter === 6) {

            $cssClass = 'col-lg-4';

        } elseif ($counter == 4) {

            $cssClass = 'col-xl-6';

        }

        else {

            $cssClass = 'col';

        }

    }

    echo $cssClass."<br/>";

    $counter++;

}

?>

结果:


col

col

col

col-xl-6

col

col-lg-4


查看完整回答
反对 回复 2022-01-14
?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

<?php 

$counter = 1;

while( have_rows('rainbow') ): the_row();

    // vars

    $name = get_sub_field('name');

    $age = get_sub_field('age');


    if ( $counter == 4 ) {

        $cssClass = 'col-xl-6';

    } elseif ( $counter == 6 ) {

        $cssClass = 'col-lg-4';

    } else {

        $cssClass = 'col';

    }


    echo '<div class="' . $cssClass . '">';

        echo "<h4>" . $name . "</h4>";

        echo "<p>" . $age . "</p>";

        echo $counter;

    echo '</div>';



    $counter++;


endwhile;

试试这个


查看完整回答
反对 回复 2022-01-14
  • 2 回答
  • 0 关注
  • 182 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号