遍历json数据,对同一属性数据进行分组?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了遍历json数据,对同一属性数据进行分组?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6585字,纯文字阅读大概需要10分钟。
内容图文
{
"module_list": [
{
"content": {
"module-type": "list-1",
"module": "list",
"type": "1",
"name": "职位列表 ",
"logo1": "imgurl1",
"title1": "baidu1",
"desc1": "hahahha1",
"url1": "www.baidu.com1",
"logo2": "imgurl2",
"title2": "baidu2",
"desc2": "hahahha2",
"url2": "www.baidu.com2",
"logo3": "imgurl3",
"title3": "baidu3",
"desc3": "hahahha3",
"url3": "www.baidu.com3",
"logo4": "",
"title4": "",
"desc4": "",
"url4": "",
"jobs": [
{
"name": "产品经理",
"salary": "10k-15k",
"url": "www.baidu.com",
"desc": "广州",
"mark": "group:1"
},
{
"name": "产品经理",
"salary": "10k-15k",
"url": "www.baidu.com",
"desc": "广州",
"mark": "group:2"
},
{
"name": "产品经理",
"salary": "10k-15k",
"url": "www.baidu.com",
"desc": "广州",
"mark": "group:3"
},
{
"name": "产品经理",
"salary": "10k-15k",
"url": "www.baidu.com",
"desc": "广州",
"mark": "group:4"
},
{
"name": "产品经理",
"salary": "10k-15k",
"url": "www.baidu.com",
"desc": "广州",
"mark": "group:1"
},
{
"name": "产品经理",
"salary": "10k-15k",
"url": "www.baidu.com",
"desc": "广州",
"mark": "group:1"
},
{
"name": "产品经理",
"salary": "10k-15k",
"url": "www.baidu.com",
"desc": "广州",
"mark": "group:4"
},
{
"name": "产品经理",
"salary": "10k-15k",
"url": "www.baidu.com",
"desc": "广州",
"mark": "group:4"
},
{
"name": "产品经理",
"salary": "10k-15k",
"url": "www.baidu.com",
"desc": "广州",
"mark": "group:3"
},
{
"name": "产品经理",
"salary": "10k-15k",
"url": "www.baidu.com",
"desc": "广州",
"mark": "group:2"
},
{
"name": "产品经理",
"salary": "10k-15k",
"url": "www.baidu.com",
"desc": "广州",
"mark": "group:2"
}
]
},
}
]
}
json存储了一些职位信息,怎么根据mark的值,对这些信息进行分组 ,例如mark值为group:1的放到一个分组里,,mark值为group:2的放到一个分组里,然后在前端显示在不同模块里。该怎么对数据进行遍历?遍历之后怎么根据不同的mark值放到不同的数组里呢
public static function buildList($module){
$jobList2 = "";
if($module['jobs']){
foreach($module['jobs'] as $job){
$jobList2 .= <<
{$job['name']}
{$job['salary']}
html;
}
}
return <<
{$module['title1']}
{$module['desc1']}
{$jobList2}
更多职位
{$module['title2']}
{$module['desc2']}
{$jobList2}
更多职位
{$module['title3']}
{$module['desc3']}
{$jobList2}
更多职位
{$module['title4']}
{$module['desc4']}
{$jobList2}
更多职位
html;
}
就是根据不同的group的值,让数据显示在相应的模块下面
回复内容:
{
"module_list": [
{
"content": {
"module-type": "list-1",
"module": "list",
"type": "1",
"name": "职位列表 ",
"logo1": "imgurl1",
"title1": "baidu1",
"desc1": "hahahha1",
"url1": "www.baidu.com1",
"logo2": "imgurl2",
"title2": "baidu2",
"desc2": "hahahha2",
"url2": "www.baidu.com2",
"logo3": "imgurl3",
"title3": "baidu3",
"desc3": "hahahha3",
"url3": "www.baidu.com3",
"logo4": "",
"title4": "",
"desc4": "",
"url4": "",
"jobs": [
{
"name": "产品经理",
"salary": "10k-15k",
"url": "www.baidu.com",
"desc": "广州",
"mark": "group:1"
},
{
"name": "产品经理",
"salary": "10k-15k",
"url": "www.baidu.com",
"desc": "广州",
"mark": "group:2"
},
{
"name": "产品经理",
"salary": "10k-15k",
"url": "www.baidu.com",
"desc": "广州",
"mark": "group:3"
},
{
"name": "产品经理",
"salary": "10k-15k",
"url": "www.baidu.com",
"desc": "广州",
"mark": "group:4"
},
{
"name": "产品经理",
"salary": "10k-15k",
"url": "www.baidu.com",
"desc": "广州",
"mark": "group:1"
},
{
"name": "产品经理",
"salary": "10k-15k",
"url": "www.baidu.com",
"desc": "广州",
"mark": "group:1"
},
{
"name": "产品经理",
"salary": "10k-15k",
"url": "www.baidu.com",
"desc": "广州",
"mark": "group:4"
},
{
"name": "产品经理",
"salary": "10k-15k",
"url": "www.baidu.com",
"desc": "广州",
"mark": "group:4"
},
{
"name": "产品经理",
"salary": "10k-15k",
"url": "www.baidu.com",
"desc": "广州",
"mark": "group:3"
},
{
"name": "产品经理",
"salary": "10k-15k",
"url": "www.baidu.com",
"desc": "广州",
"mark": "group:2"
},
{
"name": "产品经理",
"salary": "10k-15k",
"url": "www.baidu.com",
"desc": "广州",
"mark": "group:2"
}
]
},
}
]
}
json存储了一些职位信息,怎么根据mark的值,对这些信息进行分组 ,例如mark值为group:1的放到一个分组里,,mark值为group:2的放到一个分组里,然后在前端显示在不同模块里。该怎么对数据进行遍历?遍历之后怎么根据不同的mark值放到不同的数组里呢
public static function buildList($module){
$jobList2 = "";
if($module['jobs']){
foreach($module['jobs'] as $job){
$jobList2 .= <<
{$job['name']}
{$job['salary']}
html;
}
}
return <<
{$module['title1']}
{$module['desc1']}
{$jobList2}
更多职位
{$module['title2']}
{$module['desc2']}
{$jobList2}
更多职位
{$module['title3']}
{$module['desc3']}
{$jobList2}
更多职位
{$module['title4']}
{$module['desc4']}
{$jobList2}
更多职位
html;
}
就是根据不同的group的值,让数据显示在相应的模块下面
var map = {};
for(var i=0,l=jobs.length;i<l;i++){
var key = jobs[i]['mark'];
map[key] = map[key] || (map[key] = []);
map[key].push(jobs[i]);
}
return map;
这样返回的map就是一个key,value
{
group1:[job1,job2],
group2:[job3,job4]
}
应该就是你想要的
循环jobs数组:
var jobsSortObject = {};
for(var i =0; i< jobs.length; i++){
var job = jobs[i],
mark = job.mark,
jobItem = jobsSortObject[mark];
if(jobItem){
jobsSortObject[mark].push(job);
}else{
jobsSortObject[mark] = [job];
}
}
jobsSortObject就会是这个样子:
{
'group:1' : [{} , {}, {}],
'group:2' : [ {} ]
}
php
$json = '{ "module_list": [ { "content": { "module-type": "list-1", "module": "list", "type": "1", "name": "职位列表 ", "logo1": "imgurl1", "title1": "baidu1", "desc1": "hahahha1", "url1": "www.baidu.com1", "logo2": "imgurl2", "title2": "baidu2", "desc2": "hahahha2", "url2": "www.baidu.com2", "logo3": "imgurl3", "title3": "baidu3", "desc3": "hahahha3", "url3": "www.baidu.com3", "logo4": "", "title4": "", "desc4": "", "url4": "", "jobs": [ { "name": "产品经理", "salary": "10k-15k", "url": "www.baidu.com", "desc": "广州", "mark": "group:1" }, { "name": "产品经理", "salary": "10k-15k", "url": "www.baidu.com", "desc": "广州", "mark": "group:2" }, { "name": "产品经理", "salary": "10k-15k", "url": "www.baidu.com", "desc": "广州", "mark": "group:3" }, { "name": "产品经理", "salary": "10k-15k", "url": "www.baidu.com", "desc": "广州", "mark": "group:4" }, { "name": "产品经理", "salary": "10k-15k", "url": "www.baidu.com", "desc": "广州", "mark": "group:1" }, { "name": "产品经理", "salary": "10k-15k", "url": "www.baidu.com", "desc": "广州", "mark": "group:1" }, { "name": "产品经理", "salary": "10k-15k", "url": "www.baidu.com", "desc": "广州", "mark": "group:4" }, { "name": "产品经理", "salary": "10k-15k", "url": "www.baidu.com", "desc": "广州", "mark": "group:4" }, { "name": "产品经理", "salary": "10k-15k", "url": "www.baidu.com", "desc": "广州", "mark": "group:3" }, { "name": "产品经理", "salary": "10k-15k", "url": "www.baidu.com", "desc": "广州", "mark": "group:2" }, { "name": "产品经理", "salary": "10k-15k", "url": "www.baidu.com", "desc": "广州", "mark": "group:2" } ] } } ] }'; $job = json_decode($json,true); $arr = []; foreach ($job['module_list'][0]['content']['jobs'] as $key => $value) { $mark = substr($value['mark'],-1,1); $arr[$value['mark']][] = $value; $arr[$value['mark']]['title'.$mark] = $job['module_list'][0]['content']['title'.$mark]; $arr[$value['mark']]['desc'.$mark] = $job['module_list'][0]['content']['desc'.$mark]; } print_r($arr);
内容总结
以上是互联网集市为您收集整理的遍历json数据,对同一属性数据进行分组?全部内容,希望文章能够帮你解决遍历json数据,对同一属性数据进行分组?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。