我想按amount
的值将数组从最高到最低排序。我的数组$res
如下:
Array
(
[0] => 1
[id] => 1
[1] => Testowy 1
[user] => Testowy 1
[2] => 150
[amount] => 150
[3] => 1,2,3
[what] => 1,2,3
[4] => Polska
[country] => Polska
[5] => 1
[platform] => 1
)
Array
(
[0] => 2
[id] => 2
[1] => Testowy 2
[user] => Testowy 2
[2] => 100
[amount] => 100
[3] => 1
[what] => 1
[4] => United States
[country] => United States
[5] => 2
[platform] => 2
)
我尝试使用max
和arsort
,但这些似乎都没有接受他们应该用于排序的密钥。有什么帮助吗?
答案 0 :(得分:1)
尝试使用
function cmp($a, $b)
{
return ($a["amount"]<=$b["amount"])?-1:1;
}
usort($array, "cmp");
答案 1 :(得分:1)
usort($res, function ($a, $b){
return $b['amount'] - $a['amount'];
});
print_r($res);
对于PHP的版本&lt; 5.3,使用以下内容:
function cmp($a, $b){
return $b['amount'] - $a['amount'];
}
usort($res, "cmp");
答案 2 :(得分:0)
将排序函数与用户定义的比较器一起使用,例如:usort:
然后你的比较器获得两个对象并告诉你(通过你想要的任何逻辑)哪一个更大):
function compare($a, $b) {
$result = -1;
if( $a["amount"] == $b["amount"]) {
$result = 0;
} else {
if( $a["amount"] > $b["amount"] ) {
$result = 1;
}
}
return $result;
}
usort($res, "compare");