我喜欢用PHP按升序排序以下JSON数据的值工资
{
"allresults": [
{
"results": [
{
"Name": "Peter",
"salary": 1000
}
]
},
{
"results": [
{
"Name": "Riya",
"salary": 999
}
]
}
]
}
所需的结果:
- Riya: 999
- 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