$v){ $tmpk=$v['run_id'].'-'.$v['bus_order_id']; $tmp["$tmpk"]=$v; $tmp["$tmpk"]['id']=$k; } return $tmp; } /*//合并数组 function multi_merge($a,$b){ $arr = array(); foreach($a as $k=>$r){ $arr[] = array_merge($r,$b[$k]); } return $arr; }*/ //合并数组 function multi_merge($a,$b){ $arr = array(); foreach($a as $k=>$r){ if(isset($b[$k])){ $arr[$k] = array_merge($r,$b[$k]); }else{ $arr[$k] =$r; $arr[$k]['num2']=0; } } foreach($b as $k=>$r){ if(!isset($arr[$k])){ $arr[$k] =$r; $arr[$k]['num1']=0; } } return $arr; } $pdo = conn(); //从订单角度得到run_bus表的数据 $sql1 = "SELECT l.line_id, m.run_id, m.RUN_BUS_ORDER_ID bus_order_id, m.run_date, count(m.order_id) as num1 FROM order_main m LEFT JOIN opera_line l ON m.PARENT_PROD_ID = l.line_id LEFT JOIN opera_tickets t on m.prod_id=t.TICKET_ID LEFT JOIN opera_line w on t.line_id=w.line_id WHERE m.PARENT_ORDER_ID <> 0 AND m.run_date >= '$start' AND m.run_date <='$end' AND m.ORDER_VALID_STATUS = 1 AND m.CANCEL_FLAG = 0 AND m.PROD_ID <> 380001 and m.run_bus_order_id<>0 AND w.line_type in (255,256,368) AND m.ORDER_PROD_TYPE = 82 AND m.AGENT_LEVEL = 1 group by run_id,bus_order_id order by m.run_date;"; $res1 = $pdo->query($sql1); $res1->setFetchMode(PDO::FETCH_ASSOC); $arr1 = $res1->fetchAll(); $sql2="SELECT b.prod_id as line_id, b.run_id, a.bus_order_id, b.run_date, a.SEAT_COUNT, a.saled_count as num2 FROM run_bus a LEFT JOIN run_main b ON a.run_id = b.run_id WHERE b.run_date >= '$start' AND b.run_date <='$end' and a.CANCEL_FLAG=0 and a.SALED_COUNT<>0 AND b.PROD_ID <> 0 and b.prod_id<>451479 order by b.run_date;"; $res2 = $pdo->query($sql2); $res2->setFetchMode(PDO::FETCH_ASSOC); $arr2 = $res2->fetchAll(); //切换key值 $arr1=change_key($arr1); //print_r($arr1); $arr2=change_key($arr2); $arr=multi_merge($arr1,$arr2); //print_r($arr); //exit; ?>
ID | 出发日期run_date | 班次run_id | 车次号bus_order_id | 实际订单数量 | 记录已售数量 | 颜色 |