数组排序问题(从低到高)

时间:2012-04-10 14:48:23

标签: php arrays sorting

嘿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
        )

)

4 个答案:

答案 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);

http://sg.php.net/manual/en/function.usort.php

答案 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 );