Как найти последний индекс цикла foreach в smarty
Как получить последнее значение индекса цикла foreach в smarty, я m new для smarty Я использовал этот код, но его не работает
{foreach from=$cityList key=myId item=i name=foo}
{$i.location_name}{if $main_smarty.foreach.foo.last}<hr>{else}-{/if}
{/foreach}
Я хочу, чтобы, когда их последнее название города после этого получило горизонтальную линию, в противном случае это похоже на Индию-США-Японию, но, наконец, наступает Япония-Китай
В .php я использую
<?php
include_once('Smarty.class.php');
$main_smarty = new Smarty;
query to find citylist
$main_smarty->assign('cityList',$cityList);
?>
Ответы
Ответ 1
Вы ищете это:
{foreach from=$cityList key=myId item=i name=foo}
{if $smarty.foreach.foo.last}
<p>This is the last item from the array!</p>
{/if}
{/foreach}
Как вы видите, свойство, которое вам нужно проверить, это $smarty.foreach.foo.last
, где foo
- это имя вашего объекта.
Ответ 2
Если $arr - массив, который вы передали в {foreach}, это сделает трюк:
{$arr|@end}
Фактически, его не нужно вызывать внутри {foreach}
Ответ 3
{foreach from=$foo item=$bar name=foo}
{if $smarty.foreach.foo.last}
Total of({$smarty.foreach.foo.total}) Items <br />
Data ({$bar})
{/if}
{/foreach}
Ответ 4
Я думаю, что новые версии Smarty имеют более новую технику решения этой проблемы, чем показывают другие ответы. Пример из последних документов (на момент написания) использует @last
-property. Вы можете использовать его следующим образом: {if [email protected]}...
Полный пример:
{* Add horizontal rule at end of list *}
{foreach $items as $item}
<a href="#{$item.id}">{$item.name}</a>{if [email protected]}<hr>{else},{/if}
{foreachelse}
... no items to loop ...
{/foreach}
Ответ 5
Это действительно сработало для меня:
{[email protected]}
{$myvar.someproperty}
Ответ 6
Мое решение:
PHP
Array
(
[0] => car
[1] => toy
[2] => cat
[3] => gun
[4] => dog
)
.tpl
{foreach from=$interest key=$key item=$item}
{$item.value}{if $key < ($interest|count - 1)}, {/if}
{/foreach}
Результат
My interest:
car, toy, cat, gun, dog