1

$cs_map_data在 PHP 文件中命名了以下多维数组,并将其分配给 smarty 模板:

Array
(
    [2] => Array
        (
            [class_id] => 2
            [class_name] => II
            [class_checked] => 0
            [class_subjects] => Array
                (
                    [0] => Array
                        (
                            [cs_map_id] => 81
                            [subject_name] => 11 Engllish
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                )

        )

    [3] => Array
        (
            [class_id] => 3
            [class_name] => III
            [class_checked] => 0
            [class_subjects] => Array
                (
                    [0] => Array
                        (
                            [cs_map_id] => 155
                            [subject_name] => Hidi
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                    [1] => Array
                        (
                            [cs_map_id] => 156
                            [subject_name] => 11 Maths
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                    [2] => Array
                        (
                            [cs_map_id] => 157
                            [subject_name] => 11 Science
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                    [3] => Array
                        (
                            [cs_map_id] => 158
                            [subject_name] => 11 Engllish
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                )

        )

    [4] => Array
        (
            [class_id] => 4
            [class_name] => IV
            [class_checked] => 0
            [class_subjects] => Array
                (
                    [0] => Array
                        (
                            [cs_map_id] => 86
                            [subject_name] => Physics
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                )

        )

    [6] => Array
        (
            [class_id] => 6
            [class_name] => VI
            [class_checked] => 0
            [class_subjects] => Array
                (
                    [0] => Array
                        (
                            [cs_map_id] => 144
                            [subject_name] => Mathematics
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                    [1] => Array
                        (
                            [cs_map_id] => 145
                            [subject_name] => dfadadadsagfasrsarasrarBiology
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                )

        )

    [7] => Array
        (
            [class_id] => 7
            [class_name] => VII
            [class_checked] => 0
            [class_subjects] => Array
                (
                    [0] => Array
                        (
                            [cs_map_id] => 129
                            [subject_name] => Physics
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                    [1] => Array
                        (
                            [cs_map_id] => 130
                            [subject_name] => Chemistry11
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                    [2] => Array
                        (
                            [cs_map_id] => 131
                            [subject_name] => 11 Science
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                )

        )

    [8] => Array
        (
            [class_id] => 8
            [class_name] => VIII
            [class_checked] => 0
            [class_subjects] => Array
                (
                    [0] => Array
                        (
                            [cs_map_id] => 67
                            [subject_name] => Hidi
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                    [1] => Array
                        (
                            [cs_map_id] => 68
                            [subject_name] => 11 Engllish
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                )

        )

    [9] => Array
        (
            [class_id] => 9
            [class_name] => IX
            [class_checked] => 0
            [class_subjects] => Array
                (
                    [0] => Array
                        (
                            [cs_map_id] => 87
                            [subject_name] => Mathematics
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                    [1] => Array
                        (
                            [cs_map_id] => 88
                            [subject_name] => Hidi
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                    [2] => Array
                        (
                            [cs_map_id] => 89
                            [subject_name] => 11 Science
                            [subject_checked] => 0
                            [teacher_cs_id] => 
                        )

                )

        )

)

现在我想访问 key [cs_map_id] 和[subject_name]smarty 模板中每个元素的值。我尝试使用 foreach 但无法从 key[cs_map_id][subject_name]. 任何人都可以帮助我了解如何在 smarty 中访问 key[cs_map_id][subject_name]foreach 循环中的值。我在 smarty 模板中编写的代码如下:

<table>                         
              <tr>
                 {assign var='i' value=0}
                 {if $cs_map_data}
                 {foreach from=$cs_map_data item="map_data"}
                 {if $i%4 == 0}</tr><tr>{/if}
                 <td align="left" valign="top" width="150">

                  <input type="checkbox" name="cs_map_id[]" id="{$map_data.cs_map_id}" value="{$map_data.cs_map_id}"  onChange="get_test_by_category('{$map_data.cs_map_id}'); return false;" />
                 {$map_data.subject_name}
                 </td>
                 {assign var='i' value=$i+1}
                 {/foreach}
                 {else}
                        <td>
                            <i>No Subject is assigned to the class.</i>
                    </td>
                 {/if}
                </tr>
               </table>

任何人都可以帮助我如何在 smarty 模板中使用 forech 中的两个键值吗?提前致谢。

4

1 回答 1

3

这将适用于 Smarty 2 和 3。{foreach} 在版本之间发生了很大变化,但 {section} 的工作方式相同。

{section name=map loop=$cs_map_data}
    <tr>
         <td>{$cs_map_data[map].class_name}</td> //this is the format to access your data from the array
    {section name=subject loop=$cs_map_data[map].class_subjects}
          <td>
                {$cs_map_data[map].class_subjects[subject].subject_name} //this is how to access the entries of your 'inner' array
          </td>
    {/section} //end your nested section
    </tr>
{/section} //end your outer section

这应该可以遍历您的数组...

章节的 smarty 手册:http ://www.smarty.net/docsv2/en/language.function.section.tpl

祝你好运!

于 2013-05-07T14:53:13.417 回答