【问题标题】:How do I print an item from a multidemnsional array in Smarty and subsequently loop through it?如何在 Smarty 中打印多维数组中的项目并随后循环遍历它?
【发布时间】:2020-02-18 12:35:21
【问题描述】:

总的来说,我对 Smarty 和 PHP 非常陌生,并且在处理多维数组方面非常吃力。我有一个名为$tag_groups 的多维数组。当我使用{$tag_groups|@debug_print_var} 打印数组时,我得到以下输出:

Array (2)
0 => Array (2)
  tags => Array (4)
    0 => Array (8)
      id => "10"
      name => "Os coxa"
      url_name => "axial_os_coxa"
      lastmodified => "2020-02-18 10:42:13"
      counter => 76
      level => 3
      group => "Axial"
      URL => "index.php?/tags/10-axial_os_coxa"
    1 => Array (8)
      id => "12"
      name => "Rib"
      url_name => "axial_rib"
      lastmodified => "2020-02-18 10:42:13"
      counter => 76
      level => 3
      group => "Axial"
      URL => "index.php?/tags/12-axial_rib"
    2 => Array (8)
      id => "13"
      name => "Sternum"
      url_name => "axial_sternum"
      lastmodified => "2020-02-18 10:42:13"
      counter => 76
      level => 3
      group => "Axial"
      URL => "index.php?/tags/13-axial_sternum"
    3 => Array (8)
      id => "11"
      name => "Vertebra"
      url_name => "axial_vertebra"
      lastmodified => "2020-02-18 10:42:13"
      counter => 76
      level => 3
      group => "Axial"
      URL => "index.php?/tags/11-axial_vertebra"
  TITLE => "Axial"
1 => Array (3)
  tags => Array (2)
    0 => Array (8)
      id => "17"
      name => "Pan"
      url_name => "extant_primates_pan"
      lastmodified => "2020-02-18 10:42:13"
      counter => 76
      level => 3
      group => "Extant primates"
      URL => "index.php?/tags/17-extant_primates_pan"
    1 => Array (8)
      id => "18"
      name => "Pongo"
      url_name => "extant_primates_pongo"
      lastmodified => "2020-02-18 10:42:13"
      counter => 76
      level => 3
      group => "Extant primates"
      URL => "index.php?/tags/18-extant_primates_pongo"
  CHANGE_COLUMN => true
  TITLE => "Extant primates"

Array (2)$tag_groups,接下来的两个较低级别(即0 => Array (2)1 => Array (3))是$tag_group

如何只打印每个$tag_groupTITLE,或至少打印一个子级别?

我试过了

{$tag_groups.TITLE|@debug_print_var}
{$tag_groups['tag_group']|@debug_print_var}

还有一些其他变体,我要么总是得到 null 要么是 php 错误(例如,当我尝试 {$tag_groups item='tag_group'|@debug_print_var} 时)。

我的想法是,如果我只能打印数组的每个子级别的 TITLE,我就会知道使用什么语法来使用 if 条件循环遍历它,因为我想要做的事情看起来很像像这样

{foreach foreach from=$tag_groups item=tag_group.TITLE}
  {if in_array('Axial', $tag_group.TITLE)}
   DoSomethingAboutIt
  {/if}
{/foreach} 

但我什至不确定这是不是正确的想法。

感谢您的帮助!

【问题讨论】:

    标签: php loops if-statement multidimensional-array smarty


    【解决方案1】:

    好的,我想我已经解决了

    {foreach from=$tag_groups item=tag_group}
        {$tag_group.TITLE|@debug_print_var}
    {/foreach}
    

    我来自 R,所以循环遍历数组以打印其子元素对我来说毫无意义....

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-08
      • 1970-01-01
      • 1970-01-01
      • 2016-12-13
      • 1970-01-01
      • 2013-08-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多