根据2个子值对PHP数组值进行分组

时间:2018-10-17 15:05:09

标签: php arrays

我从API调用了JSON数组,并使用json_decode将它们分配给PHP变量。

该数组如下所示:

[
    {
        "id": "1",
        "abbr": "XXX",
        "title": "YYY",
        "visible_from_lat": "85",
        "visible_to_lat": "-75",
    },
    {
        "id": "2",
        "abbr": "AAA",
        "title": "BBB",
        "visible_from_lat": "85",
        "visible_to_lat": "-75",
    }
]

该数组总共有大约50个项目,所有项目都有一个visible_from_lat和一个visible_to_lat。我需要做的是将每个项目分组,如下所示:

visible_from_lat > 0然后分配给变量1

visible_from_lat < 0然后分配给变量2

有什么主意吗?

1 个答案:

答案 0 :(得分:0)

这里有一个基本的解决方案,假设在data.json文件中有您的json数据:

<?php
$array = json_decode(file_get_contents("data.json"));

$resulSetPositive = [];
$resulSetNegative = [];
foreach ($array as $obj) {
     if(isset($obj->visible_from_lat)) {
          if($obj->visible_from_lat > 0) {
               $resulSetPositive[] = $obj; // add obj to positive result set
          }
          else if($obj->visible_from_lat < 0) {
               $resulSetNegative[] = $obj; // add obj to negative result set
          }
     }
}

file_put_contents("negative.json", json_encode($resulSetNegative, JSON_PRETTY_PRINT));
file_put_contents("positive.json", json_encode($resulSetPositive, JSON_PRETTY_PRINT));