关于在htm文件中嵌入loop循环语句

我现在要做一个部门权限控制的页面。首先我在php文件中写好了几个数组,有一级部门,二级部门,三级部门。这三个部门是从属关系。比如一级部门是一维数组,二级部门是二维数组,三级部门是三维数组。在htm文件中我想到用loop循环显示。在第三级部门上每个加checkbox,选中提交之后再php文件中处理。现在的问题是,不清楚loop循环怎么写。我找到一个如下的写法:

<td><!--{loop $regularlist $regular}-->                         <span id="tr{$regular[id]}" class="grouplist" name="group{$regular[regulargroupid]}">                           <label><input type="checkbox" name="regular[]" id="regular{$regular[id]}" onclick="Regular.click(this)"   <!--{if $regular[checked]}-->                             checked="true"                              <!--{/if}-->                                >                               $regular[name]</label>                          </span>                         <!--{/loop}--></td>

我只需要那个$regular【name】,改为我自己的名字。那部门数组我应该怎么写?还有loop循环是htm语言里边的吗?还是其他语言嵌入的?
在此方面,我应该看哪方面的内容?

在你的代码中,看起来你使用的是一种模板语言,这种模板语言可能是 Smarty,也可能是另一种模板引擎。


你可以在你的 PHP 代码中设置一个变量,该变量包含你的部门数组,然后在你的模板文件中使用循环来遍历该数组。举个例子,假设你的部门数组是这样的:

$departments = array(
  array(
    'name' => 'Department 1',
    'subdepartments' => array(
      array(
        'name' => 'Subdepartment 1',
        'subdepartments' => array(
          array(
            'name' => 'Sub-subdepartment 1'
          ),
          array(
            'name' => 'Sub-subdepartment 2'
          )
        )
      ),
      array(
        'name' => 'Subdepartment 2',
        'subdepartments' => array(
          array(
            'name' => 'Sub-subdepartment 3'
          ),
          array(
            'name' => 'Sub-subdepartment 4'
          )
        )
      )
    )
  ),
  array(
    'name' => 'Department 2',
    'subdepartments' => array(
      array(
        'name' => 'Subdepartment 3',
        'subdepartments' => array(
          array(
            'name' => 'Sub-subdepartment 5'
          ),
          array(
            'name' => 'Sub-subdepartment 6'
          )
        )
      ),
      array(
        'name' => 'Subdepartment 4',
        'subdepartments' => array(
          array(
            'name' => 'Sub-subdepartment 7'
          ),
          array(
            'name' => 'Sub-subdepartment 8'
          )
        )
      )
    )
  )
);

然后你可以在模板文件中使用如下的代码来遍历这个数组:

<!--{loop $departments}-->
  <b>{$department.name}</b>
  <!--{loop $department.subdepartments}-->
    <b>{$subdepartment.name}</b>
    <!--{loop $subdepartment.subdepartments}-->
      <label>
        <input type="checkbox" name="subdepartment[]" value="{$subsubdepartment.name}"> {$subsubdepartment.name}
      </label>
    <!--{/loop}-->
  <!--{/loop}-->
<!--{/loop}-->