PHP:如果数字可以被3整除,则减1(2,5,8,11等)

8cdiaqws  于 2023-02-07  发布在  PHP
关注(0)|答案(2)|浏览(129)

我有一个用数据库中的一些内容创建div的循环,我有一个变量$current_count,我从值'0'开始,这是我循环的第一次迭代。
我正在使用:

if ($current_count == 0 || $current_count % 3 == 0) { echo '<div class="parent">'; }

在循环的最顶端创建一个父div,然后在每次可被3整除的迭代中创建一个父div,如下所示(用数字表示迭代):

0 <div class="parent">
0    <div class="child"></div>
1    <div class="child"></div>
2    <div class="child"></div>
3 <div class="parent">
3    <div class="child"></div>
4    <div class="child"></div>
5    <div class="child"></div>

但问题是我无法解决如何关闭这些div,因为它们会在不同的迭代中关闭,例如,在0迭代中打开的父对象需要在2迭代结束时关闭。
我需要简单地说(伪代码):

IF $current_count is equal to (division of 3, minus 1) { etc }

我试过:

if ($current_count % 3 == (0 - 1)) {}
if ($current_count % (3 == 0) - 1) {}
if ($current_count % 3 == 0 - 1) {}

但是这些都没有返回真值。有人知道我可以这样做的方法吗?
干杯,李。
更新1:下面是当前PHP代码的一个示例,以更好地解释我正在尝试完成的工作:

$current_count = '0';
$ret = '';

        foreach ( $brands as $index => $brand ) : 

if ($current_count == 0 || $current_count % 3 == 0) {
                    $ret.= '<div class="parent">'; //Start parent
                }

                $ret.= '<div class="child"></div>'; //Child

if ($current_count % 3 == (0 - 1)) { // IF LINE 2, 5, 8, 11 etc, NOT WORKING
                            $ret.= '</div>'; // End the parent
                        }

            $current_count++;
        endforeach;
gopyfrb3

gopyfrb31#

试试这个,

for($i = 0; $i <= 10; $i++) {
         if($i % 3 == 0 && $i > 0)// $i > 0 condition because. 0 % 3 is equal to 0 only.
              echo $i - 1;// will echo 2,5,8
              echo "</div>";// in your case.
    }
blmhpbnm

blmhpbnm2#

如果你这样做,它仍然被3除,没有解决问题。
它应该是:

if( $key % 3 == 2 ){
   </div>
}

相关问题