Смарт ток на ассоциативный массив - PullRequest
3 голосов
/ 05 октября 2010

У меня есть ассоциативный массив, и я пытаюсь получить первую запись с помощью smarty.

В php я использую current (массив), но smarty, похоже, не имеет current.

Итак, я написал код ниже

{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} current ($ item.images) выдает предупреждение: current () [function.current]: переданная переменная не является массивом или объектом

Синтаксис правильный, поэтому я думаю, что $ item.images из smarty не может быть прочитан {php}

Любой способ передать $ item.images в раздел {php}, или что-то еще.

Любое предложение, чтобы решить мою проблему?

Ответы [ 2 ]

12 голосов
/ 07 января 2011

Но что, если ключи массива ассоциативны? Вы также можете сделать:

{$item.images|@current}
2 голосов
/ 19 октября 2010
{$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}
...