$array = json_decode('[{"3609":1368486012},{"4286":1368546869},{"286":136848555}]',true);
按降序值(时间戳)重新排序的最有效方法是什么?
答案 0 :(得分:3)
reset
返回第一个数组元素的值。
代码:
$array = json_decode('[{"3609":1368486012},{"4286":1368546869},{"286":136848555}]',true);
usort($array, function($a, $b) {
return reset($b) - reset($a);
});
var_dump($array);
结果:
array(3) {
[0]=>
array(1) {
[4286]=>
int(1368546869)
}
[1]=>
array(1) {
[3609]=>
int(1368486012)
}
[2]=>
array(1) {
[286]=>
int(136848555)
}
}
注意:如果您使用PHP 5.2 ,
$array = json_decode('[{"3609":1368486012},{"4286":1368546869},{"286":136848555}]',true);
function mySort($a, $b) {
return reset($b) - reset($a);
}
usort($array, 'mySort');
var_dump($array);
哦,对不起 如果您比较浮动,
function mySort($a, $b) {
if ($a == $b)
return 0;
return ($a < $b) : 1 : -1;
}
或者
function mySort($a, $b) {
return sprintf('%E', reset($b) - reset($a));
}