我有一个类似的数组
大堆([0]=>数组([result]=>数组([0]=>数组([类型]=>ABC[id]=>123232[名称]=>苹果)[1] =>阵列([类型]=>DEF[id]=>2323232[name]=>香蕉))[title]=>酷[排名]=>2)[1] =>阵列([result]=>数组([0]=>数组([类型]=>ZX[id]=>3223[name]=>丹尼)[1] =>阵列([类型]=>QWER[id]=>2323232[name]=>仙人掌))[title]=>热门[rank]=>1)[3] 。。[4] 。。和儿子
我想按排名排序,PHP中有什么快速排序方法可以做到这一点吗?
您可以使用usort()
。
下面的示例需要>=PHP 5.3。如果您没有这个版本,只需传递一个对回调的引用。
usort($array, function($a, $b) {
return $a['rank'] - $b['rank'];
}
您可以使用usort函数:
function cmp($a, $b) {
return $a['rank'] - $b['rank'];
}
$arr = /* your array */
usort($arr, "cmp");
查看
要按降序排序(在评论中提出的问题),只需在比较函数中颠倒顺序:
function cmp($a, $b) {
return $b['rank'] - $a['rank'];
^^ ^^
}
有多种方法可以对数组进行排序,请参阅:http://php.net/manual/en/array.sorting.php