我正在努力解决这个问题。根据日期按值对多维数组进行排序。这是数组的片段:
Array
(
[0] => Array
(
[clicks] => 14
[point] => 11 February 2011
)
[1] => Array
(
[clicks] => 1
[point] => 14 February 2011
)
[2] => Array
(
[clicks] => 8
[point] => 15 February 2011
)
[3] => Array
(
[clicks] => 0
[point] => 08 February 2011
)
我想按照正确的顺序按键排序日期。因此,在这种情况下,08 February 2011
应该获得密钥0
。我试图利用usort但是这并不顺利,因为我甚至无法使用codeigniter中的回调函数,这是我正在研究的另一个问题。
最有效的方法是什么?我的阵列可以增长到60个条目。
感谢大家的帮助。
答案 0 :(得分:1)
此自定义排序应该有效:
function cmp($a, $b){
$l = strtotime($a['point']);
$r = strtotime($b['point']);
if($l == $r){
return 0;
}
return $l < $r ? -1 : 1;
}
usort($arr, "cmp");
答案 1 :(得分:0)
假设 $ data 是您的多维数组。
foreach ($data as $key => $row) {
$point[$key] = strtotime($row['point']);
}
// Sort the data with date ascending
array_multisort($point, SORT_ASC, $data);
参见 array_multisort 函数:http://php.net/manual/en/function.array-multisort.php(对于排序多维数组非常有用)
希望这有帮助。