Smarty foreach列表 - 增量索引

时间:2017-02-03 21:54:10

标签: php for-loop foreach smarty

我如何在每个迭代中的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,所以我想这样做:

view li

Code

1 个答案:

答案 0 :(得分:0)

使用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>