php - smarty 中是否可以迭代多维数组?

标签 php multidimensional-array smarty

有人可以提供一个简单的演示吗?我似乎无法理解 smarty syntax用于迭代如下所示的数组。我想了解各个层面的值(value)观。

Array
(
    [0] => Array
        (
            [id] => 0
            [name] => 12312
            [sub24] => Array
                (
                    [0] => Array
                        (
                            [classid] => 157
                            [classname] => 24011010
                        )

                    [1] => Array
                        (
                            [classid] => 170
                            [classname] => 24011020
                        )

                    [2] => Array
                        (
                            [classid] => 183
                            [classname] => 24011030
                        )

                )

            [sub23] => Array
                (
                    [0] => Array
                        (
                            [classid] => 60
                            [classname] => 23011010
                        )

                    [1] => Array
                        (
                            [classid] => 73
                            [classname] => 23011030
                        )

                    [2] => Array
                        (
                            [classid] => 85
                            [classname] => 23012030
                        )


                )

            [sub22] => Array
                (
                    [0] => Array
                        (
                            [classid] => 1
                            [classname] => 22011010
                        )

                    [1] => Array
                        (
                            [classid] => 13
                            [classname] => 22012010
                        )

                    [2] => Array
                        (
                            [classid] => 24
                            [classname] => 22012020
                        )

                )

        )

最佳答案

未经测试,但从我的角度来看,是这样的。

注意:我这样做是因为你说你想要 Smarty Syntax。通常我会将其填充到辅助函数中,创建列表/表格/任何内容,然后从 Smarty 中调用辅助函数。

<html>
<head><title>Smarty Foreach Demo</title></head>
<body>
<p>This code assumes you have $smarty->assign()'ed $var to be your multi-dimensional array</p>

<ul>
{foreach from=$var key=key1 item=lvl1}
    <li>Current key: $key1,
    Current value:
    {if !is_array($lvl1)}
       {$lvl1}
    {else}
       Array:<ul>
       {foreach from=$lvl1 key=key2 item=lvl2}
           <li>Current key: $key1,
           Current value:
           {if !is_array($lvl1)}
               {$lvl1}
           {else}
               Even deeper array.. keep doing same stuff!
           {/if}
           </li>
       {/foreach}
       </ul>
   {/if}
 {/foreach}
</ul>
</body>

关于php - smarty 中是否可以迭代多维数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1664981/

相关文章:

php - 使用 PDO 使用另一个表中的值更新 MySQL 行

python - 如何在numpy中获得从高分辨率ndarray到低分辨率的映射

java - 更新多维数组中的引用变量

arrays - 二维数组 : Index out of range

php - Smarty中如何获取COOKIE

javascript - Vtiger - Jquery SlideToggle 随机切换两次

php - 获取用户消息id

java - 比较 PHP 时间戳(int)和 java 时间戳(长)

phpmyadmin 没有在 config.inc.php 中使用 auth_type

php - 在后台搜索产品,例如输入 >=3