2017-02-03 5 views
0

Как я могу показать два разных элемента в списке (<li>) в цикле foreach на каждой итерации?Smarty foreach list - index index

Например, у меня есть:

$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

ответ

0

Раствор с помощью range, array_intersect_key, array_flip и implode функции:

$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 
) 

обходе $products внутри шаблона Twig:

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

t hank для вашего ответа, я очень смущен, я отредактировал свое сообщение, пожалуйста, вы можете увидеть его снова? –

+0

@SaulRamos, на тех скриншотах, которые вы опубликовали, есть много дополнительного кода, который напрямую не связан с вашим исходным кодом вопроса. Приложите некоторые усилия, начните с простого прохода, а затем, если это сработает, вы можете пойти с дополнительным кодом, если это необходимо – RomanPerekhrest