繁体   English   中英

使用Smarty遍历二维数组

[英]Loop through two dimensional array with Smarty

我试图使以下循环工作。 基本上,我试图将子级显示为选项。 为什么不起作用? 显示选项组。 并且以正确的方式构造数组。

{foreach from=$tpl_parents item='row' key='i'}
    <optgroup label="{$row.NAME}">
        {foreach from=$tpl_children.$i item='child' key='y'}
            <option value="{$y}">{$child.VALUE}</option>
        {/foreach}
    </optgroup>
{/foreach}

我要遍历的数组是这样构造的:父数组:

array(328) {
 [0]=>
   array(42) {
    ["ID"]=>
     string(4) "123"
    ["NAME"]=>
     string(6) "blabla"
    ...
    ...

子数组:

array(192) {
  [123]=>
    array(2) {
      [881]=>
        array(11) {
            ["CHILD_ID"]=> string(5) "881"
            ["PARENT_ID"]=> string(4) "123"
            ["VALUE"]=> string(2) "No"
    ...
    ...

看起来您需要在其中嵌套另一个foreach以获得实际的子项数组:

{foreach from=$tpl_parents item='row' key='i'}
    <optgroup label="{$row.NAME}">
        {foreach from=$tpl_children.$i item='child' key='j'}
            {foreach from=$child item='child_item' key='y'}
                <option value="{$y}">{$child_item.VALUE}</option>
            {/foreach}
        {/foreach}
    </optgroup>
{/foreach}

由于您提供的数组不完整并且没有与它们关联的变量名,因此很难解决。 例如。 $row = array('blah');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM