目前我有一些看起来像这样的多维数组
Array (
[71] => Array ( [author] => 2 [date] => 1392867376 )
[49] => Array ( [author] => 2 [date] => 1392868188 )
[75] => Array ( [author] => 14 [date] => 1392867388)
[67] => Array ( [author] => 2 [date] => 1392870805 )
)
我想按“约会”排序,但我不知道如何。我试过这个:
function cmp($a, $b) {
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
uasort($visited, 'cmp');
但由于我不知道,并且找不到如何使用“比较功能”的参考,我在太空中。我所能找到的只是非常模糊的东西。目前这个由“作者”排序。
有人可以向我解释这些比较功能是如何工作的(或指向我的在线资源)并告诉我需要做什么才能按“日期”对此数组进行排序 - 同时保持所有键完整(键不得更改或删除)
非常感谢您提供的任何帮助。
PS:我尝试过array_multisort - 它删除了我的密钥。
答案 0 :(得分:6)
尝试这个cmp函数:
function cmp($a, $b) {
if ($a['date'] == $b['date']) {
return 0;
}
return ($a['date'] < $b['date']) ? -1 : 1;
}
它应该有用。
答案 1 :(得分:0)
数组日期按升序排序
<?php
$a = array();
$a[71] = Array ('author' => 2, 'date' => 1392867376 );
$a[49] = Array ( 'author' => 14, 'date' => 1392868188 ) ;
$a[75] = Array ( 'author' => 2, 'date' => 1392867388) ;
$a[67] = Array ( 'author' => 2, 'date' => 1392870805 ) ;
$date = array();
// Obtain a list of columns
foreach ($a as $key => $row) {
$date[$key] = $row['date'];
}
//sort the array date ascending order
array_multisort($date, SORT_ASC, $a);
//array is sorted in ascending order
print_r($a);