【问题标题】:Smarty foreach list - increment indexSmarty foreach 列表 - 递增索引
【发布时间】:2017-02-03 21:54:09
【问题描述】:

如何在每次迭代的 foreach 循环中显示列表中的两个不同元素(<li>)?

例如,我有:

$arr = array('a', 'b', 'c', 'd','e','f');

我想这样显示:

- a-c-e
- b-d-f

<ul>
{foreach from=$products item=product name=products key=spi}
    <li></li>
    <li></li>
{/foreach}
</ul>

这是一个例子,我正在做prestashop,所以我想这样做:

【问题讨论】:

    标签: php for-loop foreach smarty


    【解决方案1】:

    使用rangearray_intersect_keyarray_flipimplode函数的解决方案:

    $arr = ['a', 'b', 'c', 'd','e','f'];
    $products = [
        implode('-', array_intersect_key($arr, array_flip(range(0, 5, 2)))),
        implode('-', array_intersect_key($arr, array_flip(range(1, 5, 2))))
    ];
    

    现在,$products 包含以下数组:

    Array
    (
        [0] => a-c-e
        [1] => b-d-f
    )
    

    在 Twig 模板中遍历 $products

    <ul>
        {% for p in products %}
            <li>{{ p }}</li>
        {% endfor %}
    </ul>
    

    【讨论】:

    • 感谢您的回复,我很困惑,我编辑了我的帖子,请您再看一遍吗?
    • @SaulRamos,您发布的这些屏幕截图中有很多额外的代码,与您最初的问题代码没有直接关系。做一些努力,从简单的遍历开始,如果成功了,你可以根据需要添加一些额外的代码
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-06
    • 2021-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多