1

我有一个函数可以将以下内容打印到这样的数组中:

Array ( [0] => Array ( [id] => 1 [name] => name

但是我无法foreach通过这个,我不确定为什么?

         <ul>
             {foreach from=$array item=item}
              <li>{$item.name}</li>
            {/foreach}
         </ul>

更新:

{foreach item=topitem from=$getlocations}
         {foreach item=item from=$topitem}
          <option value="{$item.locationid}">{$item.name}</option>
          {/foreach}
      {/foreach}

功能:

function getlocations()
    {
      global $smarty;

      $query = placeholderstackoverflow;

      return $query;

      $smarty->assign('getlocations', $getlocations);
    }
4

1 回答 1

3

假设您使用 Smarty 3.xx,您的代码实际上将通过关联数组运行。

示例 php 代码:

$tpl->assign('yourarray', array( 
  0 => array ( 
      'id' => 1, 
      'name' => 'name'
    )
  )
);

智能代码示例:

<ul>
{foreach from=$yourarray item=item}
    <li>{$item.name}</li>
{/foreach}
</ul>

...生成以下 HTML 输出:

<ul>
    <li>name</li>
</ul>

如果这不是您的实际或预期结果,请添加更多代码。

查看,

  • 如果您使用 Smarty 版本 3.xx 并且
  • 如果您的阵列确实正确形成。

更新:

由于您使用的是 Smarty 2.xx,因此请注意foreach 已在两者之间进行了更改。

对于遍历嵌套数组,您不能只使用一个 foreach,您必须使用更多。查看版本 2.xx手册中的示例 7.8。

于 2012-09-17T05:59:33.697 回答