php读取数组的值JS文件中数组输出表格

php常用的导出表格有两种方法,第一种是输出表格,这种方法打开的时候有警告提示,一般导出表格会用phpexcel,这个导出比较灵活,而且还可以设置表格的样式。
第一种导出例子
&* 执行导出
&* @param unknown $result 数据源
function Excel($result,$fileName='',$Key=''){
$fileName = iconv('utf-8', 'gbk',$fileName);
header("Content-type:text/charset=utf-8");
header("Content-type:application/octet-stream");
header("Accept-Ranges:bytes");
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition:filename=$fileName".date("Y-m-d").".xls");
header("Pragma: no-cache");
header("Expires: 0");
//第一行显示key
if(!$Key){
$Key = array("姓名 ","性别 ","手机号 ","意向车型 ","购买计划","提交时间");
echo iconv('utf-8', 'gbk', implode("\t", $Key))."\n";
//第三行显示剩余val
foreach($result as $key=&$val){
echo iconv('utf-8', 'gbk', implode("\t", $val))."\n";
第二种导出使用phpexcel
* 导出数据(生成excel)
* @param $data excel第一行数据
* 例:1、array('字段' =& '1');
* @param $list 二维数组 导出的数据
* @param string $title 工作表名称
* @param string $filename 文件名称
* @return boolean
public function output1($data , $list , $title = '数据模板' , $filename = '数据模板'){
$count &= count($data);//数组长度
if(!is_array($data) || $count & $this-&maxstr){//数据是否符合要求
// Create new PHPExcel object
$objPHPExcel = new \PHPExcel();
// Set document properties
$objPHPExcel-&getProperties()-&setCreator("Maarten Balliauw")
-&setLastModifiedBy("Maarten Balliauw")
-&setTitle("Office 2007 XLSX Test Document")
-&setSubject("Office 2007 XLSX Test Document")
-&setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
-&setKeywords("office 2007 openxml php")
-&setCategory("Test result file");
// Add some data 第一行
// 添加一些数据 &第一行
$SheetIndex = $objPHPExcel-&setActiveSheetIndex(0);
$this-&setAttendance($SheetIndex);//写入数据
//设置第一个单元格样式
$obActiveSheet = $objPHPExcel-&getActiveSheet();
//设置高度
$obActiveSheet-&getRowDimension('1')-&setRowHeight(40);
$obActiveSheet-&getRowDimension('6')-&setRowHeight(100);
$obActiveSheet-&getRowDimension('7')-&setRowHeight(90);
$obActiveSheet-&getRowDimension('8')-&setRowHeight(90);
$obActiveSheet-&getRowDimension('9')-&setRowHeight(90);
$obActiveSheet-&getRowDimension('10')-&setRowHeight(80);
$obActiveSheet-&getRowDimension('17')-&setRowHeight(20);
$obActiveSheet-&getRowDimension('18')-&setRowHeight(30);
$obActiveSheet-&getRowDimension('19')-&setRowHeight(30);
//设置宽度
$obActiveSheet-&getColumnDimension('A')-&setWidth(12);
$obActiveSheet-&getColumnDimension('B')-&setWidth(18);
$obActiveSheet-&getColumnDimension('C')-&setWidth(15);
$obActiveSheet-&getColumnDimension('D')-&setWidth(15);
$obActiveSheet-&getColumnDimension('E')-&setWidth(15);
$obActiveSheet-&getColumnDimension('H')-&setWidth(15);
$this-&outputPHPExcel($objPHPExcel, $filename);
* 考勤数据写入
* @param $SheetIndex 单元格对象
* @param $Cycle 周期数据列表
* @param $_clock 员工考勤数据
* @return number 返回当前最大行数
private function setAttendance($SheetIndex){
/** ----------------------------考勤头部开始--------------------------------------- */
$chrA = chr($this-&asciiA &+ 0);//A
$chrB= chr($this-&asciiA + 1);//B
$chrC= chr($this-&asciiA + 2);//C
$chrD= chr($this-&asciiA + 3);//D
$chrE= chr($this-&asciiA + 4);//E
$chrF= chr($this-&asciiA + 5);//F
$chrG= chr($this-&asciiA + 6);//G
$chrH= chr($this-&asciiA + 7);//G
$chrI= chr($this-&asciiA + 8);//G
$chrJ= chr($this-&asciiA + 9);//G
$chrK= chr($this-&asciiA + 10);//G
$chrL= chr($this-&asciiA + 11);//G
$chrM= chr($this-&asciiA + 12);//G
$chrN= chr($this-&asciiA + 13);//G
$chrO= chr($this-&asciiA + 14);//G
$SheetIndex-&setCellValueExplicit($chrA.($c), '岗位考核模板');
$SheetIndex-&mergeCells($chrA.($c).':'.$chrO.($c));//合并单元格 A2,A3
$SheetIndex-&setCellValueExplicit($chrA.($c+1), '被考核人');
$SheetIndex-&mergeCells($chrA.($c+1).':'.$chrA.($c+2));//合并单元格 A2,A3
$SheetIndex-&setCellValueExplicit($chrB.($c+1), '姓名');
$SheetIndex-&setCellValueExplicit($chrB.($c+2), '职务');
$SheetIndex-&setCellValueExplicit($chrC.($c+1), 'xxx');
$SheetIndex-&setCellValueExplicit($chrD.($c+1), '部门');
$SheetIndex-&setCellValueExplicit($chrD.($c+2), '入职时间');
$SheetIndex-&setCellValueExplicit($chrE.($c+1), '网站开发部');
$SheetIndex-&mergeCells($chrE.($c+1).':'.$chrG.($c+1));//合并单元格
$SheetIndex-&mergeCells($chrE.($c+2).':'.$chrG.($c+2));//合并单元格
$SheetIndex-&setCellValueExplicit($chrH.($c+1), '被考核人主管');
$SheetIndex-&mergeCells($chrH.($c+1).':'.$chrI.($c+1));//合并单元格&
$SheetIndex-&mergeCells($chrH.($c+2).':'.$chrI.($c+2));//合并单元格
$SheetIndex-&setCellValueExplicit($chrJ.($c+1), '姓名');
$SheetIndex-&setCellValueExplicit($chrJ.($c+2), '职务');
$SheetIndex-&setCellValueExplicit($chrK.($c+1), 'xxx);
$SheetIndex-&mergeCells($chrK.($c+1).':'.$chrO.($c+1));//合并单元格
$SheetIndex-&mergeCells($chrK.($c+2).':'.$chrO.($c+2));//合并单元格
$SheetIndex-&mergeCells($chrA.($c+3).':'.$chrO.($c+3));//合并单元格
$SheetIndex-&setCellValueExplicit($chrA.($c+4), '序号');
$SheetIndex-&setCellValueExplicit($chrB.($c+4), '指标名称');
$SheetIndex-&setCellValueExplicit($chrC.($c+4), '权重');
$SheetIndex-&setCellValueExplicit($chrD.($c+4), '衡量方法');
$SheetIndex-&setCellValueExplicit($chrM.($c+4), '评定');
$SheetIndex-&setCellValueExplicit($chrN.($c+4), '评分');
$SheetIndex-&setCellValueExplicit($chrO.($c+4), '最终得分');
$SheetIndex-&mergeCells($chrD.($c+4).':'.$chrL.($c+4));//合并单元格
$SheetIndex-&setCellValueExplicit($chrA.($c+5), '1');
$SheetIndex-&setCellValueExplicit($chrB.($c+5), '工作完成度');
$SheetIndex-&setCellValueExplicit($chrC.($c+5), '30%');
$SheetIndex-&setCellValueExplicit($chrD.($c+5), "A+:测试没有崩溃、严重并且无高级别bug
A:测试没有崩溃、严重并且高级别bug控制在所有bug的1%以内,中级别bug控制在10%
100:测试没有崩溃、严重并且高级别bug控制在所有bug的2%以内,中级别bug控制在20%
B :测试没有崩溃、严重并且高级别bug控制在所有bug的5%,使用方反馈系统中出现文案、兼容性等对系统造成较小影响的bug
B-: 有崩溃严重bug或者无奔溃严重bug但是有5%以上的高级别bug,使用方反馈在使用中出现功能无法使用、500、404等严重故障");
$SheetIndex-&setCellValueExplicit($chrM.($c+5), '100');
$SheetIndex-&setCellValueExplicit($chrN.($c+5), '100');
$SheetIndex-&setCellValueExplicit($chrO.($c+5), '30');
$SheetIndex-&mergeCells($chrD.($c+5).':'.$chrL.($c+5));//合并单元格
这只是部分代码
阅读(...) 评论()在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
考试类型的表jx_exam_type,可后台添加内容
考试成绩的表jx_result,可后台添加内容
期中考试成绩表中的exam_id对应考试类型表中的id,也就是添加的成绩是属于期中还是期末
然后使用php查询
$sql="SELECT re.type, re.score, re.exam_id, et.title, DATE_FORMAT(et.addtime, '%Y-%m-%d') AS etime FROM jx_result AS re LEFT JOIN jx_exam_type AS et ON re.exam_id = et.id WHERE re.uid = '$uid' ORDER BY et.addtime DESC";
$result=$db-&query($sql);
while($row=$result-&fetch_assoc()){
echo json_encode($arr);
输出的格式如下
"type": "语文",
"score": "91",
"exam_id": "2",
"title": "三年级期末考试",
"etime": ""
"type": "英语",
"score": "89",
"exam_id": "2",
"title": "三年级期末考试",
"etime": ""
"type": "数学",
"score": "60",
"exam_id": "2",
"title": "三年级期末考试",
"etime": ""
"type": "数学",
"score": "91",
"exam_id": "1",
"title": "三年级期中考试",
"etime": ""
"type": "语文",
"score": "85",
"exam_id": "1",
"title": "三年级期中考试",
"etime": ""
"type": "英语",
"score": "87",
"exam_id": "1",
"title": "三年级期中考试",
"etime": ""
请问我如何才能将以上输出的json格式变为以下这种
"title": "三年级期中考试",
"etime": "",
"exam_id": [
"type": "数学",
"score": "91",
"exam_id": "1"
"type": "语文",
"score": "85",
"exam_id": "1"
"type": "英语",
"score": "87",
"exam_id": "1"
"title": "三年级期末考试",
"etime": "",
"exam_id": [
"type": "语文",
"score": "91",
"exam_id": "2"
"type": "英语",
"score": "89",
"exam_id": "2"
"type": "数学",
"score": "60",
"exam_id": "2"
变为以上这种格式后输出到前台,通过JS来输出到html上面(可能我写的想要的格式有问题,不过大概意思就是将原来的数据根据exam_id来归类一下再输出)
目前正在学习中,很多地方不是很懂,求指教~~谢谢
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
这是我理解的架构,這樣前端應該可以遍歷到
while ($row = $result-&fetch_assoc()) {
$scorearr = array("type" =& $row["type"], "score" =& $row["type"], "exam_id" =& $row["exam_id"]);
if (isset($arr[$row["exam_id"]])) {
$arr[$row["exam_id"]]["exam_id"][] = $
$arr[$row["exam_id"]]["title"] = $row["title"];
$arr[$row["exam_id"]]["etime"] = $row["etime"];
$arr[$row["exam_id"]]["exam_id"][0] = $
$result = array();
foreach($arr as $val) {
$result[] = $
echo $json_encode($result)
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
应该是少包了一层,可以遍历一下你的数组,然后就可以得到你想要的了,然后在json转码就可以了
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
你取数据和处理数据的逻辑有问题,不过你这种的话也可以写
"type": "语文",
"score": "91",
"exam_id": "2",
"title": "三年级期末考试",
"etime": ""
"type": "英语",
"score": "89",
"exam_id": "2",
"title": "三年级期末考试",
"etime": ""
"type": "数学",
"score": "60",
"exam_id": "2",
"title": "三年级期末考试",
"etime": ""
"type": "数学",
"score": "91",
"exam_id": "1",
"title": "三年级期中考试",
"etime": ""
"type": "语文",
"score": "85",
"exam_id": "1",
"title": "三年级期中考试",
"etime": ""
"type": "英语",
"score": "87",
"exam_id": "1",
"title": "三年级期中考试",
"etime": ""
$arr = json_decode($str,true);
$result = [];
$examId = [];
foreach($arr as $key=&$val){
if(!isset($result[$val['exam_id']])){
$result[$val['exam_id']]['title'] = $val['title'];
$result[$val['exam_id']]['etime'] = $val['etime'];
$result[$val['exam_id']]['exam_id'][] = array("type"=&$val['type'],"score"=&$val['score'],"exam_id"=&$val['exam_id']);
echo json_encode(array_values($result));
不过你这种取数据的方式不建议,如果数据复杂点 量大点,处理起来就会麻烦
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。PHP生成数组再传给js的方法
转载 & & 投稿:whsnow
这篇文章主要介绍了PHP传数组给js的方法,需要的朋友可以参考下
&script type="text/javascript"&
var slist = '&?php echo urlencode(json_encode($data['arr']));?&';
var list = eval(decodeURIComponent(slist));
drawGpsMap(list);
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具2013年5月 总版技术专家分月排行榜第一
2016年7月 总版技术专家分月排行榜第二2016年3月 总版技术专家分月排行榜第二2015年12月 总版技术专家分月排行榜第二2014年8月 总版技术专家分月排行榜第二2014年7月 总版技术专家分月排行榜第二2013年6月 总版技术专家分月排行榜第二
匿名用户不能发表回复!|关于JS里怎么把循环输出的结果组成数组【php吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:149,475贴子:
关于JS里怎么把循环输出的结果组成数组收藏
求101至200的质数,我输出来了&script&
function fn(){
for(var a=101;a&=200;a++){
for(var b=2;b&=a;b++){
if(a%b==0){
document.write(a+' ');
fn();所有质数我都输出来了,问题是怎么输出他们总个数啊
兄弟连php,专注PHP+数据库开发+Web前端技术培训,国内靠谱的PHP培训机构,现在学PHP好就业吗?兄弟连PHP培训,VIP一对一贴身陪学,随时解决PHP学习难题,
在else里面 i
= i +1不可以吗?
这那么简单,对于你还要问吗
2楼的意思是
总数减去不是质数的个数
else计算不是质数的个数
这是个思路
登录百度帐号推荐应用

我要回帖

更多关于 php读取二维数组 的文章

 

随机推荐