我必须使用返回 JSON 的网络服务。解码 JSON 后,我得到数组:
$arrays[0]["2013-04-09"]=$someValue;
$arrays[1]["2013-04-09"]=$someValue;
$arrays[2]["2013-04-11"]=$someValue;
$arrays[3]["2013-04-05"]=$someValue;
$arrays[4]["2013-04-09"]=$someValue;
我想要排序(稳定的方式并使用第二个暗键的键)数组并得到结果:
$arrays[3]["2013-04-05"];
$arrays[0]["2013-04-09"]; //stable way don't swap with next val
$arrays[1]["2013-04-09"]; //stable way don't swap with next and prev vel
$arrays[4]["2013-04-09"]; //stable way, don't swap with prev val
$arrays[2]["2013-04-11"];
你能帮助我吗?我尝试创建自己的排序功能,因为 ksort 或 krsort 仅使用第一个暗键进行排序。谢谢你的回答。
编辑:我尝试编写自己的函数 - 这很有效 - 我在单元测试中得到了错误的“有效答案”,这就是我说这不起作用的原因:
private function getResult(){
...
usort($arrays,array($this,'mycmp'));
...
}
private function mycmp($a, $b){
foreach($a as $key=>$val){
$first = $key;
}
foreach($b as $key=>$val){
$second = $key;
}
if ($first == $second){
return 0;
}
return ($first < $second) ? -1:1;
}
感谢帮助