목차
{$module['title4']}
回复内容:
백엔드 개발 PHP 튜토리얼 遍历json数据,对同一属性数据进行分组?

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

Jun 06, 2016 pm 08:32 PM
json php

<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>
로그인 후 복사
로그인 후 복사

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 id="module-title">{$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 id="module-title">{$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 id="module-title">{$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 id="module-title">{$module['title4']}</h1>
                        <p>{$module['desc4']}</p>
                        <ul class="jobList2">
                            {$jobList2}
                        </ul>
                        <p class="more">更多职位</p>
                    </li>
                </ul>
            </div>
        
html;

    }

</code>
로그인 후 복사
로그인 후 복사

就是根据不同的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>
로그인 후 복사
로그인 후 복사

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 id="module-title">{$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 id="module-title">{$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 id="module-title">{$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 id="module-title">{$module['title4']}</h1>
                        <p>{$module['desc4']}</p>
                        <ul class="jobList2">
                            {$jobList2}
                        </ul>
                        <p class="more">更多职位</p>
                    </li>
                </ul>
            </div>
        
html;

    }

</code>
로그인 후 복사
로그인 후 복사

就是根据不同的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>
로그인 후 복사

jobsSortObject就会是这个样子:

<code>{
    'group:1' : [{} , {}, {}],
    'group:2' : [ {} ]
}
</code>
로그인 후 복사

<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 =&gt; $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>
로그인 후 복사
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Dec 24, 2024 pm 04:42 PM

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드

CakePHP 날짜 및 시간 CakePHP 날짜 및 시간 Sep 10, 2024 pm 05:27 PM

CakePHP 날짜 및 시간

CakePHP 프로젝트 구성 CakePHP 프로젝트 구성 Sep 10, 2024 pm 05:25 PM

CakePHP 프로젝트 구성

CakePHP 파일 업로드 CakePHP 파일 업로드 Sep 10, 2024 pm 05:27 PM

CakePHP 파일 업로드

CakePHP 라우팅 CakePHP 라우팅 Sep 10, 2024 pm 05:25 PM

CakePHP 라우팅

CakePHP 토론 CakePHP 토론 Sep 10, 2024 pm 05:28 PM

CakePHP 토론

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 Dec 20, 2024 am 11:31 AM

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법

CakePHP 빠른 가이드 CakePHP 빠른 가이드 Sep 10, 2024 pm 05:27 PM

CakePHP 빠른 가이드

See all articles