Php Smarty分配和显示二维数组

Php Smarty分配和显示二维数组,php,arrays,smarty,smarty3,smarty2,Php,Arrays,Smarty,Smarty3,Smarty2,我想获取二维数组的数据,并使用smarty将其显示在html文件中: 其思想如下:my array包含多个数组每个人都在第一个偏移量中包含类别名称以及指向该类别的附加链接 1文件php $categories_links = array();//array that contains some catgories name with the attached links //some dummy data $categorie1="Horror movies"; $link11="http://

我想获取二维数组的数据,并使用smarty将其显示在html文件中: 其思想如下:my array包含多个数组每个人都在第一个偏移量中包含类别名称以及指向该类别的附加链接

1文件php

$categories_links = array();//array that contains some catgories name with the attached links
//some dummy data
$categorie1="Horror movies";
$link11="http://www.movie11.com";
$link12="http://www.movie12.com";
$link13="http://www.movie13.com";
$categories_links[] = array($categorie1, $link11, $link12,$link13);
$categorie2="Action movies";
$link21="http://www.movie21.com";
$link22="http://www.movie22.com";
$categories_links[] = array($categorie2, $link21, $link22);
$smarty->assign('categories_links' , $categories_links );
$smarty->display('file.html');
2文件html

{foreach key=categorie item=categorie from=$categories_links}
    foreach key=categorie item=categorie from=categorie}
 <!--
  1.display only the first item in every array as the category name
  2.display the rest as the links attached to the above category

//-->
  {/foreach}
{/foreach}
{foreach key=categorie item=categorie from=$categories\u links}
foreach key=categorie item=categorie from=categorie}
{/foreach}
{/foreach}
假设您使用Smarty 3(您没有提到Smarty 2),您可以使用以下代码:

{foreach $categories_links as $categorie}
<p>
    {foreach $categorie as $item}

        {if $item@first}
            <strong>Category name: {$item}</strong><br />
        {else}
            {$item}

        {/if}
    {/foreach}
</p>
{/foreach}
编辑

正如您在评论中提到的,您希望Smarty 2的解决方案需要在Smarty模板文件中使用:

{foreach key=id item=categorie from=$categories_links}
    <p>
        {foreach item=item from=$categorie name=list}

            {if $smarty.foreach.list.first}
                <strong>Category name: {$item}</strong><br />
            {else}
                {$item}

            {/if}
        {/foreach}
    </p>
{/foreach}
(与Smarty 3中的代码完全相同)

假设您使用Smarty 3(您没有提到任何有关Smarty 2的内容),您可以使用以下代码:

{foreach $categories_links as $categorie}
<p>
    {foreach $categorie as $item}

        {if $item@first}
            <strong>Category name: {$item}</strong><br />
        {else}
            {$item}

        {/if}
    {/foreach}
</p>
{/foreach}
编辑

正如您在评论中提到的,您希望Smarty 2的解决方案需要在Smarty模板文件中使用:

{foreach key=id item=categorie from=$categories_links}
    <p>
        {foreach item=item from=$categorie name=list}

            {if $smarty.foreach.list.first}
                <strong>Category name: {$item}</strong><br />
            {else}
                {$item}

            {/if}
        {/foreach}
    </p>
{/foreach}
(与Smarty 3中的代码完全相同)

假设您使用Smarty 3(您没有提到任何有关Smarty 2的内容),您可以使用以下代码:

{foreach $categories_links as $categorie}
<p>
    {foreach $categorie as $item}

        {if $item@first}
            <strong>Category name: {$item}</strong><br />
        {else}
            {$item}

        {/if}
    {/foreach}
</p>
{/foreach}
编辑

正如您在评论中提到的,您希望Smarty 2的解决方案需要在Smarty模板文件中使用:

{foreach key=id item=categorie from=$categories_links}
    <p>
        {foreach item=item from=$categorie name=list}

            {if $smarty.foreach.list.first}
                <strong>Category name: {$item}</strong><br />
            {else}
                {$item}

            {/if}
        {/foreach}
    </p>
{/foreach}
(与Smarty 3中的代码完全相同)

假设您使用Smarty 3(您没有提到任何有关Smarty 2的内容),您可以使用以下代码:

{foreach $categories_links as $categorie}
<p>
    {foreach $categorie as $item}

        {if $item@first}
            <strong>Category name: {$item}</strong><br />
        {else}
            {$item}

        {/if}
    {/foreach}
</p>
{/foreach}
编辑

正如您在评论中提到的,您希望Smarty 2的解决方案需要在Smarty模板文件中使用:

{foreach key=id item=categorie from=$categories_links}
    <p>
        {foreach item=item from=$categorie name=list}

            {if $smarty.foreach.list.first}
                <strong>Category name: {$item}</strong><br />
            {else}
                {$item}

            {/if}
        {/foreach}
    </p>
{/foreach}

(与Smarty 3中的完全相同)

我将重构数据数组,以使用类别名称作为键

$categories = array(
  'Horror movies' => array(
    'link1',
    'link2',
    /...
  ),
  'Action movies' => array(
    'link1',
    'link2',
    /...
  ),
);
$smarty->assign("categories", $categories);
然后,您可以在Smarty中轻松使用它

{foreach from=$categories key=category item=links}
  Category: {$category}
  {foreach from=$links item=link}
  {$link}
  {/foreach}
{/foreach}

这样使用起来容易多了。

我将重构数据数组,以使用类别名称作为键

$categories = array(
  'Horror movies' => array(
    'link1',
    'link2',
    /...
  ),
  'Action movies' => array(
    'link1',
    'link2',
    /...
  ),
);
$smarty->assign("categories", $categories);
然后,您可以在Smarty中轻松使用它

{foreach from=$categories key=category item=links}
  Category: {$category}
  {foreach from=$links item=link}
  {$link}
  {/foreach}
{/foreach}

这样使用起来容易多了。

我将重构数据数组,以使用类别名称作为键

$categories = array(
  'Horror movies' => array(
    'link1',
    'link2',
    /...
  ),
  'Action movies' => array(
    'link1',
    'link2',
    /...
  ),
);
$smarty->assign("categories", $categories);
然后,您可以在Smarty中轻松使用它

{foreach from=$categories key=category item=links}
  Category: {$category}
  {foreach from=$links item=link}
  {$link}
  {/foreach}
{/foreach}

这样使用起来容易多了。

我将重构数据数组,以使用类别名称作为键

$categories = array(
  'Horror movies' => array(
    'link1',
    'link2',
    /...
  ),
  'Action movies' => array(
    'link1',
    'link2',
    /...
  ),
);
$smarty->assign("categories", $categories);
然后,您可以在Smarty中轻松使用它

{foreach from=$categories key=category item=links}
  Category: {$category}
  {foreach from=$links item=link}
  {$link}
  {/foreach}
{/foreach}

使用这种方式要容易得多。

你应该编辑你的问题并将一些样本数据放在PHP格式(不是var\u dump)我添加了一些虚拟数据你应该编辑你的问题并将一些样本数据放在PHP格式(不是var\u dump)我添加了一些虚拟数据你应该编辑你的问题并将一些样本数据放在PHP格式(不是var\u dump)中我添加了一些虚拟数据你应该编辑你的问题,并把一些PHP格式的样本数据(不是var_dump)我添加了一些虚拟数据感谢这是一个伟大的解决方案,希望将其标记为接受的答案这只是我需要一个smarty 2.6的解决方案。。。我的错误我知道,因为我在问题中没有提到smarty版本谢谢这是一个很好的解决方案我想将其标记为已接受的答案这只是我需要smarty 2.6的解决方案。。。我的错误我知道,因为我在问题中没有提到smarty版本谢谢这是一个很好的解决方案我想将其标记为已接受的答案这只是我需要smarty 2.6的解决方案。。。我的错误我知道,因为我在问题中没有提到smarty版本谢谢这是一个很好的解决方案我想将其标记为已接受的答案这只是我需要smarty 2.6的解决方案。。。我的错误我知道,因为我在问题中没有提到smarty版本