php 输出 js数组与对象
2023-09-11 14:17:02 时间
js数组(array)和对象(object)区别
数据集合既可以用数组表示,也可以用对象表示,且each打印效果相同
数组表示有序数据的集合,而对象表示无序数据的集合。如果数据的顺序很重要,就用数组,否则就用对象。
例如数组:
var a=[1,2,3,4];
例如对象:
var a={"province":"山东","city":"济南","address":"解放路886号"};
数组的数据没有”名称”(name),对象的数据有”名称”(name)
php输出数组-对象,原始数据结构
# sid sname mid mname # Jay 周杰伦 1001 七里香 # Jay 周杰伦 1002 霍元甲 # Jay 周杰伦 1003 11月的肖邦 # Jay 周杰伦 1004 东风破 # Eason 陈奕迅 2001 十年 # Eason 陈奕迅 2002 稳稳的幸福
将数据按照歌手分组,music为子数组,输出json
要输出的结构:
$data = [ [ 'sid' => "Jay", 'sname' => '周杰伦', 'music' => [ [ 'mid' => '1001', 'mname' => '七里香', ], [ 'mid' => '1002', 'mname' => '霍元甲', ], [ 'mid' => '1003', 'mname' => '11月的肖邦', ], [ 'mid' => '1004', 'mname' => '东风破', ], ], ], [ 'sid' => "Eason", 'sname' => '陈奕迅', 'music' => [ [ 'mid' => '2001', 'mname' => '十年', ], [ 'mid' => '2002', 'mname' => '稳稳的幸福', ], ], ], ];
js
[ { "sid": "Jay", "sname": "周杰伦", "music": [ { "mid": "1001", "mname": "七里香" }, { "mid": "1002", "mname": "霍元甲" }, { "mid": "1003", "mname": "11月的肖邦" }, { "mid": "1004", "mname": "东风破" } ] }, { "sid": "Eason", "sname": "陈奕迅", "music": [ { "mid": "2001", "mname": "十年" }, { "mid": "2002", "mname": "稳稳的幸福" } ] } ]
第一步,php原数组:
$music = [ 0 => [ 'sid' => "Jay", 'sname' => '周杰伦', 'mid' => '1001', 'mname' => '七里香', ], 1 => [ 'sid' => "Jay", 'sname' => '周杰伦', 'mid' => '1002', 'mname' => '霍元甲', ], 2 => [ 'sid' => "Jay", 'sname' => '周杰伦', 'mid' => '1003', 'mname' => '11月的肖邦', ], 3 => [ 'sid' => "Jay", 'sname' => '周杰伦', 'mid' => '1004', 'mname' => '东风破', ], 4 => [ 'sid' => "Eason", 'sname' => '陈奕迅', 'mid' => '2001', 'mname' => '十年', ], 5 => [ 'sid' => "Eason", 'sname' => '陈奕迅', 'mid' => '2002', 'mname' => '稳稳的幸福', ], ];
第二步,分组
$data = []; foreach ($music as $key => $value) { $sid_group = $value['sid']; $data[$sid_group][$key] = $value; } print_r($data);
打印分组
Array ( [Jay] => Array ( [0] => Array ( [sid] => Jay [sname] => 周杰伦 [mid] => 1001 [mname] => 七里香 ) [1] => Array ( [sid] => Jay [sname] => 周杰伦 [mid] => 1002 [mname] => 霍元甲 ) [2] => Array ( [sid] => Jay [sname] => 周杰伦 [mid] => 1003 [mname] => 11月的肖邦 ) [3] => Array ( [sid] => Jay [sname] => 周杰伦 [mid] => 1004 [mname] => 东风破 ) ) [Eason] => Array ( [4] => Array ( [sid] => Eason [sname] => 陈奕迅 [mid] => 2001 [mname] => 十年 ) [5] => Array ( [sid] => Eason [sname] => 陈奕迅 [mid] => 2002 [mname] => 稳稳的幸福 ) ) )
第三步,输出json结构
$data_temp = []; foreach ($data as $key => $value) { $t = []; $t['sid'] = $key; $i = 0; foreach ($value as $fvalue) { $t['sname'] = $fvalue['sname']; $t['music'][$i]['mid'] = $fvalue['mid']; $t['music'][$i]['mname'] = $fvalue['mname']; $i++; } $data_temp[] = $t; } print_r($data_temp); echo json_encode($data_temp);
相关文章
- JS 逆向 --- 过无限debugge、hook、js混淆还原、控制流混淆
- Html Table用JS导出excel格式问题 导出EXCEL后单元格里的000412341234会变成412341234 7-14 会变成 2018-7-14(7月14) 自定义格式 web利用table表格生成excel格式问题 js导出excel增加表头、mso-number-format定义数据格式 数字输出格式转换 mso-number-format:"@"
- html table表格导出excel的方法 html5 table导出Excel HTML用JS导出Excel的五种方法 html中table导出Excel 前端开发 将table内容导出到excel HTML table导出到Excel中的解决办法 js实现table导出Excel,保留table样式
- 【综合案例】原生JS实现购物商城
- 【前端灵魂脚本语言JavaScript④】——JS中函数的使用
- JS leetcode 猜数字 题解分析,我以为题目在第八层我在第一层,其实我在第三层题目在第一层
- Js 限时秒杀【倒计时】【案例】
- Nginx + php-fpm 执行 PHP 脚本超时 报错 502 Bad Gateway + 504 Gateway Time-out 的解决办法
- PHP 错误与异常 笔记与总结(3)PHP 配置文件(php.ini)中与错误相关的选项 与 设置错误级别
- 【HarmonyOS】【JS】【布局】鸿蒙js开发input 输入框弹出输入法时上方布局被挤扁?
- 【HarmonyOS】【JS】 鸿蒙js开发使用div自带的scroll,滑动条拉不到最下面?
- 常用js封装
- 【企鹅电竞直播源】浏览器抓取真实直播源地址(纯前端JS & PHP解析源码)
- js跳出循环的三种方法
- JS模板引擎handlebars.js的简单使用
- JS异步编程 (1)
- js给url字符串添加参数
- php面试题之三——PHP语言基础(基础部分)
- 【Laya + TS + JS】SheetJS(js-xlsx)前端生成Excel表格
- οnchange相当于前端js函数,可以实现前端实时更新以及修改验证
- PHP的mod_rewrite重写模块将.php后缀换成.html
- Three.js Example 注解 —— webgl_voxels_liquid.html
- Node.js cluster模块