1

可能重复:
如何在 php 中对多维数组进行排序

我有一个像这样的数组:

Array
(
    [0] => Array
        (
            [lop] => 7A1
            [tongdiem] => 4
        )

    [1] => Array
        (
            [lop] => 7A2
            [tongdiem] => 5
        )

    [2] => Array
        (
            [lop] => 7A3
            [tongdiem] => 6
        )

    [3] => Array
        (
            [lop] => 7A4
            [tongdiem] => 30
        )

    [4] => Array
        (
            [lop] => 7A5
            [tongdiem] => 21
        )

)

我需要排序 [tongdiem] ASC,但不更改数组键,例如:

Array
(
    [0] => Array
        (
            [lop] => 7A1
            [tongdiem] => 4
        )

    [1] => Array
        (
            [lop] => 7A2
            [tongdiem] => 5
        )

    [2] => Array
        (
            [lop] => 7A3
            [tongdiem] => 6
        )

    [3] => Array
        (
            [lop] => 7A5
            [tongdiem] => 21
        )

    [4] => Array
        (
            [lop] => 7A4
            [tongdiem] => 30
        )

)

我尝试过 asort,一些 php 数组内置函数,但不起作用。

我需要使用 [tongdiem] 值 ASC 对数组进行排序,但不更改数组键。

我该怎么办?

4

1 回答 1

2

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

function cmp($a, $b) {
    if ($a['tongdiem'] == $b['tongdiem']) {
        return 0;
    }
    return ($a['tongdiem'] < $b['tongdiem']) ? -1 : 1;
}
usort($array, "cmp");
于 2012-12-19T19:18:20.880 回答