我有一个数组,如下所示:
[0] => Array
(
[ID] => 1
[total_1] => 200
[total_2] => 10
[total_3] => 420
[name] => testname1
)
[1] => Array
(
[ID] => 2
[total_1] => 900
[total_2] => 30
[total_3] => 40
[name] => testname1
)
[2] => Array
(
[ID] => 3
[total_1] => 900
[total_2] => 40
[total_3] => 90
[name] => testname1
)
我需要用total_1、total_2和total_3的和来排序。因此,在这个例子中,如果我只按正确的降序输出ID密钥,它将是:
3,2,1
有人能告诉我如何用PHP做这件事吗?
您可以使用usort函数来比较值的总和:
function cmp($arr1, $arr2){
$sum1 = $arr1['total_1'] + $arr1['total_2'] + $arr1['total_3'];
$sum2 = $arr2['total_1'] + $arr2['total_2'] + $arr2['total_3'];
if ($sum1 == $sum2) {
return 0;
}
return ($sum1 < $sum2) ? -1 : 1;
}
usort($array, "cmp");