嘿Guyz我在数组排序方面存在问题,如果您有任何解决方案,我不知道如何解决这个问题然后回答我
基本上我想要将此数组与avg_pred_error
(从低到高)排序,如36 39 39 41
Array
(
[0] => Array
(
[avg_pred_error] => 39
[user_name] => Abdul Samad
)
[1] => Array
(
[avg_pred_error] => 41
[user_name] => Kane Marcus
)
[2] => Array
(
[avg_pred_error] => 39
[user_name] => Sam Shawn
)
[3] => Array
(
[avg_pred_error] => 36
[user_name] => Axel Woodgate
)
)
答案 0 :(得分:4)
使用usort
。以下基本上是手册中的基本示例:
function cmp($a, $b) {
if ($a['avg_pred_error'] == $b['avg_pred_error'])
return 0;
return ($a['avg_pred_error'] < $b['avg_pred_error']) ? -1 : 1;
}
// Sort (LOW to HIGH) and print the resulting array
usort($array, 'cmp');
print_r($array);
答案 1 :(得分:0)
usort($list, function($entry1, $entry2) {return strcmp($entry1['avg_pred_error'], $entry2['avg_pred_error']);});
结果是$ list
答案 2 :(得分:0)
使用usort
function sortAvg($a, $b) {
return $a['avg_pred_error'] - $b['avg_pred_error'];
}
usort($input, 'sortAvg');
print_r($input);
答案 3 :(得分:0)
幸运的是,这很简单。使用uasort提供自己的比较功能:
<?php
$foo = array(
array(
'avg_pred_error' => 39,
'user_name' => 'Abdul Samad'
),
array(
'avg_pred_error' => 41,
'user_name' => 'Kane Marcus'
),
array(
'avg_pred_error' => 39,
'user_name' => 'Sam Shawn'
),
array(
'avg_pred_error' => 36,
'user_name' => 'Axel Woodgate'
)
);
$sort = function( $a, $b ) {
if( $a['avg_pred_error'] === $b['avg_pred_error'] ) {
return 0;
}
return $a['avg_pred_error'] < $b['avg_pred_error'] ? '-1' : '1';
};
uasort( $foo, $sort );
var_dump( $foo );