PHP函數之array_multisort()

PHP函數之array_multisort()php


array_multisort()

說明:

array_multisort() 函數返回排序數組。您能夠輸入一個或多個數組。函數先對第一個數組進行排序,接着是其餘數組,若是兩個或多個值相同,它將對下一個數組進行排序,能夠理解爲mysql中的sort key asc, key2 descmysql

語法

array_multisort(array1,sorting order,sorting type,array2,array3...)

參數

參數 描述
array1 必需。規定數組。
sorting order 可選。規定排列順序。可能的值:SORT_ASC - 默認。按升序排列 (A-Z)。SORT_DESC - 按降序排列 (Z-A)。
sorting type 可選。規定排序類型。
array2 可選。規定數組。
array3 可選。規定數組。

sorting type 可選的值:sql

  • SORT_REGULAR - 默認。把每一項按常規順序排列(Standard ASCII,不改變類型)。shell

  • SORT_NUMERIC - 把每一項做爲數字來處理。數組

  • SORT_STRING - 把每一項做爲字符串來處理。函數

  • SORT_LOCALE_STRING - 把每一項做爲字符串來處理,基於當前區域設置(可經過 setlocale() 進行更改)。code

  • SORT_NATURAL - 把每一項做爲字符串來處理,使用相似 natsort() 的天然排序。排序

  • SORT_FLAG_CASE - 能夠結合(按位或)SORT_STRING 或 SORT_NATURAL 對字符串進行排序,不區分大小寫。字符串

示例

  1. 一維多個數組排序table

<?php
$a1=array("Dog","Dog","Cat");
$a2=array("Pluto","Fido","Missy");
array_multisort($a1,$a2);
print_r($a1);
print_r($a2);

結果

Array
(
    [0] => Cat
    [1] => Dog
    [2] => Dog
)
Array
(
    [0] => Missy
    [1] => Fido    //dog相同時,fido排序在pluto的前面
    [2] => Pluto
)
  1. 多維數組排序

<?php
$arr = array(
    '0' => array(
        'num1' => 3,
        'num2' => 27 
    ),
    
    '1' => array(
        'num1' => 5,
        'num2' => 50
    ),
    
    '2' => array(
        'num1' => 4,
        'num2' => 44
    ),
    
    '3' => array(
        'num1' => 3,
        'num2' => 78
    ) 
);

foreach ( $arr as $key => $row ){
    $num1[$key] = $row ['num1'];
    $num2[$key] = $row ['num2'];
}

array_multisort($num1, SORT_ASC, $num2, SORT_DESC, $arr);

print_r($arr);

結果

Array
(
    [0] => Array
        (
            [num1] => 3
            [num2] => 78
        )

    [1] => Array
        (
            [num1] => 3
            [num2] => 27
        )

    [2] => Array
        (
            [num1] => 4
            [num2] => 44
        )

    [3] => Array
        (
            [num1] => 5
            [num2] => 50
        )

)
相關文章
相關標籤/搜索