H_jsen 2017-06-28 03:11 采纳率: 0%
浏览 936

thinkphp双重循环怎样输出到模板中

图片说明

上图是MySQL的数据结构
图片说明

上图是也要在模板中输出的格式

姓名是在循环不重复名字的,如果有重复名字的,即他的各项分数相加,就是语文的成绩相加,数学和英语的都一样;时间也是循环出来,即每个月都有,求问大神在thinkphp中控制器和模板中代码分别要怎么写?谢谢!

  • 写回答

1条回答 默认 最新

  • cara666 2017-06-29 06:48
    关注

    控制器:
    $arr=array(
    array('name'=>'王','yuwen'=>75,'shuxue'=>80,'yingyu'=>110,'datetime'=>'201702'),
    array('name'=>'李','yuwen'=>85,'shuxue'=>60,'yingyu'=>90,'datetime'=>'201701'),
    array('name'=>'张','yuwen'=>95,'shuxue'=>83,'yingyu'=>70,'datetime'=>'201701'),
    array('name'=>'周','yuwen'=>77,'shuxue'=>95,'yingyu'=>40,'datetime'=>'201701'),
    array('name'=>'吴','yuwen'=>82,'shuxue'=>96,'yingyu'=>55,'datetime'=>'201701'),
    array('name'=>'王','yuwen'=>79,'shuxue'=>80,'yingyu'=>96,'datetime'=>'201701'),
    array('name'=>'李','yuwen'=>84,'shuxue'=>105,'yingyu'=>80,'datetime'=>'201702'),
    array('name'=>'张','yuwen'=>95,'shuxue'=>66,'yingyu'=>117,'datetime'=>'201702'),
    array('name'=>'周','yuwen'=>101,'shuxue'=>77,'yingyu'=>108,'datetime'=>'201702'),
    array('name'=>'吴','yuwen'=>115,'shuxue'=>55,'yingyu'=>60,'datetime'=>'201702'),
    );
    /*格式:array(
    '王'=>array(
    '201701'=>array('yuwen'=>75,''),
    '201702'=>array(),
    )
    );*/
    //提出所有的时间并按升序排序(不重复)
    $time=array_unique(array_column($arr, 'datetime'));
    sort($time);
    $data=array();
    foreach ($arr as $v){
    $data[$v['name']][$v['datetime']]=$v;
    }
    //按照时间排序
    foreach ($data as $k=>$v){
    ksort($data[$k]);
    }

        $this->assign('time',$time);
        $this->assign('data',$data);
        $this->display();
    
        模板:
        <table border="1" cellspacing="0" cellpadding="0">
        <caption>成绩表</caption>
        <tr>
            <td rowspan="2">姓名</td>
            <foreach name="time" item="vo">
                    <td colspan="3" align="center">{$vo}</td>
            </foreach>
        </tr>
        <tr>
            <foreach name="time" item="vo">
            <td>语文</td>
            <td>数学</td>
            <td>英语</td>
            </foreach>
        </tr>
    
            <foreach name="data" item="vo" key="k">
                <tr>
                <td>{$k}</td>
                <foreach name="vo" item="vs">
                <td>{$vs.yuwen}</td>
                <td>{$vs.shuxue}</td>
                <td>{$vs.yingyu}</td>
                </foreach>
                </tr>
            </foreach>
    
    
    </table>
    
    ![图片说明](https://img-ask.csdn.net/upload/201706/29/1498718919_374102.png)
    
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器