天天看點

PHP二維數組按某一鍵值排序

php數組函數很強大,封裝的數組操作函數也有很多。有很大一部分,日常開發中用的很少。平時遇到二維數組,想要根據其中某一個鍵值做排序,一般會用周遊處理。

使用兩個系統函數就可以很好的解決這一問題。

例:   一個二維數組,要根據鍵值 num 做倒序排列:

$arr = array(
        array(
            '測試1',
            'num'=>6
        ),
        array(
            '測試2',
            'num'=>2
        ),
        array(
            '測試3',
            'num'=>5
        ),
        array(
            '測試4',
            'num'=>1
        ),
        array(
            '測試5',
            'num'=>3
        )
    );

array_multisort(array_column($arr,'num'),SORT_DESC,$arr);
var_dump($arr);
           

輸出:

array(5) {

  [0]=>

  array(2) {

    [0]=>

    string(7) "測試1"

    ["num"]=>

    int(6)

  }

  [1]=>

  array(2) {

    [0]=>

    string(7) "測試3"

    ["num"]=>

    int(5)

  }

  [2]=>

  array(2) {

    [0]=>

    string(7) "測試5"

    ["num"]=>

    int(3)

  }

  [3]=>

  array(2) {

    [0]=>

    string(7) "測試2"

    ["num"]=>

    int(2)

  }

  [4]=>

  array(2) {

    [0]=>

    string(7) "測試4"

    ["num"]=>

    int(1)

  }

}