php 输出 js数组与对象
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);