Как мне распечатать элемент из многопараметрического массива в Smarty и затем через него l oop? - PullRequest
0 голосов
/ 18 февраля 2020

Я очень новичок в 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.

Как мне распечатать только TITLE каждого $tag_group или хотя бы подуровень?

Я пытался

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

И несколько других вариантов и Я либо получаю нулевое значение, либо ошибку php (например, когда я пытаюсь {$tag_groups item='tag_group'|@debug_print_var}).

Я думаю, что если я смогу напечатать только НАЗВАНИЕ каждого подуровня массива, я буду знать, какой синтаксис использовать, чтобы провести через него oop с условием if, как то, что я хочу сделать, будет выглядеть примерно так

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

Но я даже не уверен, что это правильное мышление.

Спасибо за помощь!

1 Ответ

0 голосов
/ 18 февраля 2020

Ладно, думаю, я с этим разобрался

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

Я пришел из R, поэтому для меня просто не имело смысла l oop через массив для печати его подэлементов. ...

...