嗨,我在按不同键对多维数组进行排序时遇到问题,例如按日期、按类别、按任何特定顺序按重量。
我不能按 mysql 按功能对这些数组进行排序,因为我必须在 mysql 输出数组(数据)上实现严格的业务逻辑。
实现业务逻辑后,我发现以下类型的数组需要排序
日期升序,类别降序,重量升序。
数组的大小为 10000 或更大。
我已经使用了 usort 功能,但是在排序元素的值相同的情况下,它无法解决固定排序的问题。
请帮忙。
Array
(
[0] => Array
(
[categorie] => xyz
[date] => 2012-12-08 19:30
[weight] => 3
[row_id] => 125812
[searchtype] => show
[uitgespeeld] => 0
)
[1] => Array
(
[categorie] => show
[date] => 2012-12-10 20:15
[weight] => 3
[row_id] => 125816
[searchtype] => show
[uitgespeeld] => 0
)
[2] => Array
(
[categorie] => abc
[date] => 2012-12-13 20:30
[weight] => 3
[row_id] => 119151
[searchtype] => show
[uitgespeeld] => 0
)
.......
)
我用于排序的代码。
usort($temp_group_data, array('className','cmp_weight'));
usort($temp_group_data, array('className','cmp_date'));
function cmp_weight($a, $b) {
if (($a['weight']==$b['weight']) ) {
return 0;
} else if ($a['weight'] >$b['weight']) {
return -1;
} else {
return 1;
}
}
function cmp_date($a, $b) {
if (($a['date']==$b['date']) ) {
return 0;
} else if (strtotime($a['date']) >strtotime($b['date'])) {
return -1;
} else {
return 1;
}
}