PHP数组的问题

<?php
class HgcyController extends admin{
    public function __construct(){
        parent::__construct();
    }
    
    public function listAction(){
        $this->mssql = $this->model("mssql");
        $this->oracle= $this->model("oracle");
        $table = "zl_haigcy";

        $page         =     $this->input->get("page");
        $page         =     $page ? $page : 1;
        $pagesize    =   $this->input->get("pagesize");
        $pagesize     =     $pagesize ? $pagesize : 20;
        
        $start_time =     $this->input->get("start_time");
        $end_time   =     $this->input->get("end_time");
        $tdh        =     $this->input->get("tdh");
        $xh            =     $this->input->get("xh");
        $where         =     array("1=1");
        $tdh        &&    $where[] = "tdh = '$tdh'";
        $xh            &&    $where[] = "xh  = '$xh'";
        $start_time &&     $where[] = "tzrq > '$start_time 00:00:00.000'";
        $end_time   &&     $where[] = "tzrq <= '$end_time 23:59:59.999'";
        $data         =     $this->mssql->paging($table, $where, "tzrq", $page, "DESC", $pagesize);
        if($this->get("submit")=="导出"){
            $data     =    $this->mssql->paging($table, $where, "tzrq", 1, "DESC", 1000);
        }
        foreach($data as $key=>$value){
            $oracleFields = $this->oracle->get("*", "cw_inspt_results", array("cip_plc_cntrno='".$value["xh"]."'", "cip_plg_billno='".$value["tdh"]."'"));    
            $data[$key]["sl"] = count($oracleFields) ? "" : "未受理";
            //print_r($test);
            $data[$key] += $oracleFields;
        }
        //print_r($data);
        
        if($this->get("submit")=="导出"){
            require(EXTENSION_DIR.'PHPExcel/export.php');
            export($data, array("bggs", "jck", "bgdh", "tdh", "xh", "xx", "tzrq", "sl", "CIP_DIAOZHUANG", "CIP_YIDONG", "CIP_TAOXING"), "hgcy.xlsx");
            exit();
        }
        
        $total      =     $this->mssql->count_all_results($table, $where);
        
        $pagelist = $this->instance('pagelist');    //加载分页类
        $pagelist->loadconfig();
        $urlparam = array(
            "page" => "{page}",
            "start_time"=>$start_time,
            "end_time"=>$end_time
        );//print_r($data);
        $pagelist = $pagelist->total($total)->url( url("admin/hgcy/list", $urlparam) )->num($pagesize)->page($page)->output();
        $this->view->assign('pagelist', $pagelist);
        $this->view->assign('tdh', $tdh);
        $this->view->assign('xh', $xh);
        $this->view->assign('start_time', $start_time);
        $this->view->assign('end_time', $end_time);
        $this->view->assign('list', $data);
        $this->view->display('admin/hgcy_list');
        
    }
}

这整段代码谁能给我解释一下什么意思,特别是

foreach($data as $key=>$value){
            $oracleFields = $this->oracle->get("*", "cw_inspt_results", array("cip_plc_cntrno='".$value["xh"]."'", "cip_plg_billno='".$value["tdh"]."'"));    
            $data[$key]["sl"] = count($oracleFields) ? "" : "未受理";
            //print_r($test);
            $data[$key] += $oracleFields;
        }

$data[$key]["sl"] = count($oracleFields) ? "" : "未受理";
特别是这句话的意思$data[$key]["sl"]看不明白这个SL是哪里来的是个什么东西

阅读 2.4k
4 个回答
foreach($data as $key=>$value){
    $oracleFields = $this->oracle->get("*", "cw_inspt_results", array("cip_plc_cntrno='".$value["xh"]."'", "cip_plg_billno='".$value["tdh"]."'"));
    //封装的方法请求获取数据
           
    //$data数组是foreach循环的($data哪里来你自己知道,你这代码里没有), 'sl'是某个item里面的字段
    $data[$key]["sl"] = count($oracleFields) ? "" : "未受理";//通过三目+count判断长度,判断是否存在数据
    
    $data[$key] += $oracleFields; //数据叠加操作
}
//你可以改一下这个代码 打印一下$data 如果里面没有'sl' 就是上面的操作新增的 记录用值
if($this->get("submit")=="导出"){
            $data     =    $this->mssql->paging($table, $where, "tzrq", 1, "DESC", 1000);
            //var_dump($data);
        }
//楼下大哥说的对哦(刚开始没注意看) 'sl'在这里会用到
 if($this->get("submit")=="导出"){
            require(EXTENSION_DIR.'PHPExcel/export.php');
            export($data, array("bggs", "jck", "bgdh", "tdh", "xh", "xx", "tzrq", "sl", "CIP_DIAOZHUANG", "CIP_YIDONG", "CIP_TAOXING"), "hgcy.xlsx");
            exit();
        }

就是给这个赋值,当前这个不一定有,给这数组里面加一个。

只是在你的分页结果集$data数据中加了一个sl标识的关联数组元素,与表字段无关,与你下文的excel导出数据相关。

建议吧sql语句及返回数据结构给处理,这样才好判断是怎么一回事。。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题