PHP數(shù)組函數(shù)array_multisort()用法實(shí)例分析

字號:


    本文實(shí)例分析了PHP數(shù)組函數(shù)array_multisort()用法。分享給大家供大家參考,具體如下:
    有時候我們需要對二維數(shù)組的某個鍵的值進(jìn)行排序,這里就是討論這個問題。我們可以使用array_multisort()這個函數(shù)。array_multisort() 函數(shù)對多個數(shù)組或多維數(shù)組進(jìn)行排序。
    參數(shù)中的數(shù)組被當(dāng)成一個表的列并以行來進(jìn)行排序 - 這類似 SQL 的 ORDER BY 子句的功能。第一個數(shù)組是要排序的主要數(shù)組。數(shù)組中的行(值)比較為相同的話,就會按照下一個輸入數(shù)組中相應(yīng)值的大小進(jìn)行排序,依此類推。
    第一個參數(shù)是數(shù)組,隨后的每一個參數(shù)可能是數(shù)組,也可能是下面的排序順序標(biāo)志(排序標(biāo)志用于更改默認(rèn)的排列順序)之一:
    SORT_ASC - 默認(rèn),按升序排列。(A-Z)
    SORT_DESC - 按降序排列。(Z-A)
    隨后可以指定排序的類型:
    SORT_REGULAR - 默認(rèn)。將每一項(xiàng)按常規(guī)順序排列。
    SORT_NUMERIC - 將每一項(xiàng)按數(shù)字順序排列。
    SORT_STRING - 將每一項(xiàng)按字母順序排列。
    語法:array_multisort(array1,sorting order,sorting type,array2,array3...)
    array1:必需。規(guī)定輸入的數(shù)組。
    sorting order:可選。規(guī)定排列順序??赡艿闹凳?SORT_ASC 和 SORT_DESC。
    sorting type:可選。規(guī)定排序類型??赡艿闹凳荢ORT_REGULAR、SORT_NUMERIC和SORT_STRING。
    array2:可選。規(guī)定輸入的數(shù)組。
    array3:可選。規(guī)定輸入的數(shù)組。
    字符串鍵名將被保留,但是數(shù)字鍵將被重新索引,從 0 開始,并以 1 遞增??梢栽诿總€數(shù)組后設(shè)置排序順序和排序類型。如果沒有設(shè)置,每個數(shù)組參數(shù)會使用默認(rèn)值。
    下面是一個例子:
    <?php
     $arr = '';
     echo '二維數(shù)組如下:'.'<br / >';
     for($i=0; $i<=5; $i++)
     {
     $arr[$i]['val'] = mt_rand(1, 100);
     $arr[$i]['num'] = mt_rand(1, 100);
     }
     echo '<pre>';
     print_r($arr);
     echo '</pre>';
     echo '從二維數(shù)組中抽出鍵為val,單獨(dú)成另一個數(shù)組:'.'<br / >';
     foreach ($arr as $key => $row) 
     {
       $vals[$key] = $row['val'];
        $nums[$key] = $row['num'];
     }
     echo '<pre>';
     print_r($vals);
     echo '</pre>';
     echo '對其進(jìn)行排序:'.'<br / >';
     array_multisort($vals, SORT_ASC, $arr);
     echo '<pre>';
     print_r($vals);
     echo '</pre>';
    ?>
    運(yùn)行結(jié)果:
    二維數(shù)組如下:
    Array
    (
      [0] => Array
        (
          [val] => 46
          [num] => 49
        )
      [1] => Array
        (
          [val] => 8
          [num] => 24
        )
      [2] => Array
        (
          [val] => 37
          [num] => 3
        )
      [3] => Array
        (
          [val] => 32
          [num] => 35
        )
      [4] => Array
        (
          [val] => 19
          [num] => 38
        )
      [5] => Array
        (
          [val] => 30
          [num] => 37
        )
    )
    從二維數(shù)組中抽出鍵為val,單獨(dú)成另一個數(shù)組:
    Array
    (
      [0] => 46
      [1] => 8
      [2] => 37
      [3] => 32
      [4] => 19
      [5] => 30
    )
    對其進(jìn)行排序:
    Array
    (
      [0] => 8
      [1] => 19
      [2] => 30
      [3] => 32
      [4] => 37
      [5] => 46
    )
    這樣我們將得到一個按val升序排序的二維數(shù)組。
    希望本文所述對大家PHP程序設(shè)計(jì)有所幫助。