[使用PHP将json中的相同值分组

问题描述 投票:0回答:1

我是PHP的新手,我正在使用PHP从外部JSON文件中读取数据,我希望将相同的值分组(类似于MySQL中的分组依据)。我已经尝试了几种方法和研究,但无法获得预期的结果,请帮助。

这是我的JSON数据:

[{"name":"jonh","school":"Barak Primary school","class":"3rd grade","year":"2019"},{"name":"Danny","school":"Barak Primary school","class":"4rd grade","year":"2019"},{"name":"Ben","school":"Mara Primary school","class":"3rd grade","year":"2019"}{"name":"West","school":"Mara Primary school","class":"3rd grade","year":"2019"}]

这是我的PHP

$json = file_get_contents('https://xxxx.json');//get data from url
$posts = json_decode($json,true); // put data into variable 
foreach ($posts as $val) {
     echo '<p>' . $val[school] . '</p>';
}

这是我得到的结果:

Barak Primary School
Barak Primary School
Mara Primary School
Mara Primary School

但是我想要这样的结果:

Barak Primary School
Mara Primary School 

因此,在这种情况下,它将相同的值归为一,您的所有建议都会受到赞赏。

php json
1个回答
1
投票

您可以使用array_columnarray_column中提取school值,然后在JSON中仅查找不同的值。然后,您可以遍历这些值:

array_unique

输出:

array_unique

$schools = array_unique(array_column($posts, 'school')); foreach ($schools as $school) { echo '<p>' . $school . '</p>'; }

© www.soinside.com 2019 - 2024. All rights reserved.