如何排序JSON数组在第二级使用PHP


How to sort JSON Array at second level using PHP

我喜欢用PHP按升序排序以下JSON数据的值工资

{
    "allresults": [
        {
            "results": [
                {
                    "Name": "Peter",
                    "salary": 1000
                }
            ]
        },
        {
            "results": [
                {
                    "Name": "Riya",
                    "salary": 999
                }
            ]
        }
    ]
}

所需的结果:

  1. Riya: 999
  2. Peter: 1000

您可以使用usasort编写自定义排序函数。像这样的东西应该为您工作:

$data = json_decode($json, true);
uasort($data['allresults'], function($a, $b) {
    $aSalary = $a['results'][0]['salary'];
    $bSalary = $b['results'][0]['salary'];
    return $aSalary - $bSalary;
});
foreach($data['allresults'] as $item) {
    printf("%s: %d<br />", $item['results'][0]['Name'], $item['results'][0]['salary']);
}

play with this:

$jsonIterator = new RecursiveIteratorIterator(
        new RecursiveArrayIterator(your_json($file, TRUE)),
        RecursiveIteratorIterator::SELF_FIRST
    );
foreach ($jsonIterator as $key => $val) {
     //your control
}

第一个json到PHP数组-> $json_arr = json_decode($json, true);

之后->可以使用array_multisort http://php.net//manual/en/function.array-multisort.php