<?php
//有以下这样的数组
//============
$a = array(
        array(
                'name' => 'aa',
                'xx' => array(
                        'qq' => 0,
                        'ww' => 1,
                        'ee' => 0,
                        'rr' => 0,
                        'tt' => 0,
                        'yy' => 1,
                )
        ),
        array(
                'name' => 'bb',
                'xx' => array(
                        'qq' => 0,
                        'ww' => 1,
                        'ee' => 1,
                        'rr' => 0,
                        'tt' => 1,
                        'yy' => 1,
                )
        ),
        array(
                'name' => 'cc',
                'xx' => array(
                        'qq' => 1,
                        'ww' => 0,
                        'ee' => 1,
                        'rr' => 1,
                        'tt' => 0,
                        'yy' => 0,
                )
        ),
);
//要求输出以下循环所得的结果HTML格式
foreach($a as $value){
        $name = $value['name'];
        $inputStr = '';
        foreach($value['xx'] as $k => $v){
                $checked = $v==1?'checked="checked"':'';
                $checkStr = '<input type="checkbox" name="'.$k.'"'.$checked." />\n";
                $inputStr.=$checkStr;
        }
        echo "<div><label>$name</label><div>$inputStr</div></div>";
}/*我的ThinkPHP模板代码如下
  <foreach name="a" item="item">
  <div>
    <label>{$item.name}</label>
    <foreach name="item.xx" item="yy" key="k">
        <input type="checkbox" name="{$k}"<if condition="($yy[$k]) eq 1"> checked="checked"</if> />
    </foreach>
  </div>
  </foreach>我不知道如何在第二层for里输出想像中的$yy[$k]..
我也尝试过用eq标签,哎..手册没有详细地说明在嵌套循环里如何访问那些..
*/

解决方案 »

  1.   

     $checkStr = '<input type="checkbox" name="'.$k.'"'.$checked." />\n";
     $inputStr.=$checkStr;
    你已经给$inputStr赋值了,直接$inputStr.='<input type="checkbox" name="'.$k.'"'.$checked." />\n";
    后台已经  //要求输出以下循环所得的结果HTML格式  处理了,模板你要输出什么呢?
      

  2.   

    就是用绿色部分模板代码实现上面的foreach结果...
      

  3.   

     <input type="checkbox" name="{$k}"<if {$k} eq 1"> checked="checked"</if> />
    试试,我也好久没用TP了
      

  4.   

    将数组a赋值给arr$this->assign('arr', $a);
    $this->display();用的是volist<volist name="arr" id="vo">
    <div>
    <label>{#$vo['name']#}</label>
    <volist name="vo['xx']" id="vx">
    <input type="checkbox" name="{#$key#}" <if condition="$vx eq 1">checked="checked"</if> />
    </volist>
    </div>
    </volist>