我有一个关联数组,我试图用smarty获得第一条记录。
在php中我使用current(array),但smarty似乎没有最新版本。
所以我写了下面的代码
{if is_array($browseProducts.data) }
<ul class="products-grid">
{foreach from=$browseProducts.data item=item}
{assign var='image' value=''}
{if is_array($item.images) }
{php} $image=current($item.images); {/php}
{/if}
{/foreach}
</ul>
{/if}
在{php}部分当前($ item.images)给出警告:current()[function.current]:传递的变量不是数组或对象
语法是正确的,所以我想来自smarty的$ item.images无法被{php}
读取任何方式将$ item.images传递给{php}部分,或者是什么。
有什么建议可以解决我的问题吗?
答案 0 :(得分:12)
但是如果数组的键是关联的呢?你也可以这样做:
{$item.images|@current}
答案 1 :(得分:2)
{$item.images.0}
应该返回$ item.images数组的第一个元素。
所以:
{if is_array($browseProducts.data) }
<ul class="products-grid">
{foreach from=$browseProducts.data item=item}
{assign var='image' value=''}
{if is_array($item.images) }
{$item.images.0}
{/if}
{/foreach}
</ul>
{/if}