$array = json_decode('[{"3609":1368486012},{"4286":1368546869},{"286":136848555}]',true);
按值递减(时间戳)重新排序的最有效方法是什么?
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);
哦,对不起,
如果你比较float,
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));
}