Smarty:数组不工作

时间:2012-09-17 05:34:04

标签: php arrays smarty

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

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);
    }

1 个答案:

答案 0 :(得分: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 has been changed

对于遍历嵌套数组,你不能只使用一个foreach,你必须使用更多的foreach。查看example 7.8 in the manual版本2.xx。