使用基于 foreach 循环的 php 和把手动态更改布局

问题描述

这是我的问题:

<?PHP
$handlebars->registerHelper('cols',function ($var,$args) use ($handlebars) {
    $cols = 0;

    if (is_array($var) && count($var) == 2) {
        $cols = 6;
    }
    if (is_array($var) && count($var) == 4) {
        $cols = 3;
    }
    if (is_array($var) && count($var) == 3) {
        $cols = 4;
    }
    if (is_array($var) && count($var) > 4) {
        foreach ($var as $key => $data) {

            if ($key > 3) {
                echo $key;
                $cols = 4;
                //return $cols;
            } else {
                echo $key;
                $cols = 6;
                //return $cols;
            }

        }
    }
    return $cols;
});


{{#each cards}}
<div class="col-lg-{{#cols cards}} mb-4 {{#if centered}}text-center{{/if}} {{#if threedee}}raised-card{{/if}} basic-card">
    

</div>
{{/each}}

我正在尝试根据数据库中的项目数量动态生成布局。

让我们假设(只是为了避免编写大量代码)每个函数都可以工作(我在 wordpress 上使用了 lazyblock 并且它与把手一起使用 - PHP 和 mustache 的混合体)。

我想根据数据库中特定类别的项目数更改列数,然后循环遍历它们,最后取决于项目总数的数量,我将创建我的布局。

到目前为止一切顺利,除了这样一个事实,如果我有 5 个项目,我想为前三列打印两个不同的数字(对于两个不同的引导列)4 为前三列,其余 2 为 6。

问题是,如果我回显密钥,就像在提到的代码中一样,我获得了这些值:01234,所以我可以分配两个不同的值:

if ($key > 3) {
    echo $key;
    $cols = 4;
    //return $cols;
} else {
    echo $key;
    $cols = 6;
    //return $cols;
}

但如果我改为返回值,总数就会不同,if 语句将不起作用。

我错过了什么吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)