1

Hey 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

4 に答える 4

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);
于 2012-04-10T14:51:47.880 に答える
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 );
于 2012-04-10T14:58:51.397 に答える
0
usort($list, function($entry1, $entry2) {return strcmp($entry1['avg_pred_error'], $entry2['avg_pred_error']);});

結果は $list にあります

于 2012-04-10T14:52:21.977 に答える
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

于 2012-04-10T14:52:48.653 に答える