遍历json数据,对同一属性数据进行分组?

WBOY
Freigeben: 2016-06-06 20:32:00
Original
1367 Leute haben es durchsucht

<code>{
    "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"
                    }
                ]
            },

        }
    ]
}
</code>
Nach dem Login kopieren
Nach dem Login kopieren

json存储了一些职位信息,怎么根据mark的值,对这些信息进行分组 ,例如mark值为group:1的放到一个分组里,,mark值为group:2的放到一个分组里,然后在前端显示在不同模块里。该怎么对数据进行遍历?遍历之后怎么根据不同的mark值放到不同的数组里呢

<code>    public static function buildList($module){
        $jobList2 = "";
        if($module['jobs']){
            foreach($module['jobs'] as $job){
                $jobList2 .= 
                    <a class="post post2">{$job['name']}</a>
                    <span class="salary">{$job['salary']}</span>
                
html;
            }
        }
        return 
            <div class="content">
                <ul class="cmpList">
                    <li class="cmpList-li">
                        <img src="" alt="">
                        <h1>{$module['title1']}</h1>
                        <p>{$module['desc1']}</p>
                        <ul class="jobList2">
                            {$jobList2}
                        </ul>
                        <p class="more">更多职位</p>
                    </li>
                    <li class="cmpList-li">
                        <img src="" alt="">
                        <h1>{$module['title2']}</h1>
                        <p>{$module['desc2']}</p>
                        <ul class="jobList2">
                            {$jobList2}
                        </ul>
                        <p class="more">更多职位</p>
                    </li>
                    <li class="cmpList-li">
                        <img src="" alt="">
                        <h1>{$module['title3']}</h1>
                        <p>{$module['desc3']}</p>
                        <ul class="jobList2">
                            {$jobList2}
                        </ul>
                        <p class="more">更多职位</p>
                    </li>
                    <li class="cmpList-li">
                        <img src="" alt="">
                        <h1>{$module['title4']}</h1>
                        <p>{$module['desc4']}</p>
                        <ul class="jobList2">
                            {$jobList2}
                        </ul>
                        <p class="more">更多职位</p>
                    </li>
                </ul>
            </div>
        
html;

    }

</code>
Nach dem Login kopieren
Nach dem Login kopieren

就是根据不同的group的值,让数据显示在相应的模块下面

回复内容:

<code>{
    "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"
                    }
                ]
            },

        }
    ]
}
</code>
Nach dem Login kopieren
Nach dem Login kopieren

json存储了一些职位信息,怎么根据mark的值,对这些信息进行分组 ,例如mark值为group:1的放到一个分组里,,mark值为group:2的放到一个分组里,然后在前端显示在不同模块里。该怎么对数据进行遍历?遍历之后怎么根据不同的mark值放到不同的数组里呢

<code>    public static function buildList($module){
        $jobList2 = "";
        if($module['jobs']){
            foreach($module['jobs'] as $job){
                $jobList2 .= 
                    <a class="post post2">{$job['name']}</a>
                    <span class="salary">{$job['salary']}</span>
                
html;
            }
        }
        return 
            <div class="content">
                <ul class="cmpList">
                    <li class="cmpList-li">
                        <img src="" alt="">
                        <h1>{$module['title1']}</h1>
                        <p>{$module['desc1']}</p>
                        <ul class="jobList2">
                            {$jobList2}
                        </ul>
                        <p class="more">更多职位</p>
                    </li>
                    <li class="cmpList-li">
                        <img src="" alt="">
                        <h1>{$module['title2']}</h1>
                        <p>{$module['desc2']}</p>
                        <ul class="jobList2">
                            {$jobList2}
                        </ul>
                        <p class="more">更多职位</p>
                    </li>
                    <li class="cmpList-li">
                        <img src="" alt="">
                        <h1>{$module['title3']}</h1>
                        <p>{$module['desc3']}</p>
                        <ul class="jobList2">
                            {$jobList2}
                        </ul>
                        <p class="more">更多职位</p>
                    </li>
                    <li class="cmpList-li">
                        <img src="" alt="">
                        <h1>{$module['title4']}</h1>
                        <p>{$module['desc4']}</p>
                        <ul class="jobList2">
                            {$jobList2}
                        </ul>
                        <p class="more">更多职位</p>
                    </li>
                </ul>
            </div>
        
html;

    }

</code>
Nach dem Login kopieren
Nach dem Login kopieren

就是根据不同的group的值,让数据显示在相应的模块下面

var map = {};
for(var i=0,l=jobs.length;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数组:

<code>var jobsSortObject = {}; 
for(var i =0; i</code>
Nach dem Login kopieren

jobsSortObject就会是这个样子:

<code>{
    'group:1' : [{} , {}, {}],
    'group:2' : [ {} ]
}
</code>
Nach dem Login kopieren

<code>php</code><code>$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);
</code>
Nach dem Login kopieren
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!