PHP到Smarty,显示一些嵌套数组



我在smarty中显示一些嵌套数组结果时遇到了一些问题…这是我的文件:

$searchResults—一个数组,其中每一行都是一个结果集。没问题。$searchResults[$row][users][] -这是我创建的嵌套数组。如果这行搜索结果中存在用户,我想显示每个用户....

那么,这里我们有我的smarty代码:

{section name=i loop=$searchResults}
  {section name=j loop=$searchResults[i].users}
     {$searchResults[i].users[j].firstName}
  {/section}
{/section}

然而,这似乎不适合我…它在我的表中以一种疯狂的方式显示用户结果,而不是在相同的<td></td>中,section被放置在里面。

UPDATE - Using For Each,使用更多代码…

{section name=i loop=$searchResults}
     <tr>
        <td>{$searchResults[i].id}</td>
        <td>                        
           {if $searchResults[i].users}
              {foreach from=$searchResults[i].users item=user}
             {$user.firstName} {$user.lastName} <br>
              {/foreach}
           {/if}
        </td>
      </tr>
 {/section}

显示如下所示的表:

ID  
ID  
ID  
        Bob Boberton
        John Appleton

        Chris Cooley
        Carl Agley
        Cynthia Nobody

当它应该是这样的:

ID  Bob Boberton
    John Appleton
ID  Chris Cooley
ID  Carl Agley
    Cynthia Nobody

您可以进一步使用另一个foreach作为主循环。我发现它们更容易阅读和找到问题所在。

{foreach from=$searchResults item=result}
    <tr>
        <td>{$result.id}</td>
        <td>
            {if $result.users}
                {foreach from=$result.users item=user}
                    {$user.firstName} {$user.lastName}<br/>
                {/foreach}
            {/if}
        </td>
    </tr>
{/foreach}

也就是说,我无法重现你对$searchResults描述的问题;你的循环和我的循环最后都是一样的。下面是我使用的数组。

$smarty->assign('searchResults', array(
    array(
        'id' => 1,
        'users' => array(
            array(
                'firstName' => 'Bob',
                'lastName' => 'Boberton',
            ),
            array(
                'firstName' => 'John',
                'lastName' => 'Appleton',
            ),
        ),
    ),
    array(
        'id' => 10,
        'users' => array(
            array(
                'firstName' => 'Chris',
                'lastName' => 'Cooley',
            ),
        ),
    ),
    array(
        'id' => 100,
        'users' => array(
            array(
                'firstName' => 'Carl',
                'lastName' => 'Agley',
            ),
            array(
                'firstName' => 'Cynthia',
                'lastName' => 'Nobody',
            ),
        ),
    ),
));

相关内容

  • 没有找到相关文章

最新更新