PHP數組函數array_multisort()用法實例分析
來源:易賢網 閱讀:1036 次 日期:2016-08-29 15:50:32
溫馨提示:易賢網小編為您整理了“PHP數組函數array_multisort()用法實例分析”,方便廣大網友查閱!

本文實例分析了PHP數組函數array_multisort()用法。分享給大家供大家參考,具體如下:

有時候我們需要對二維數組的某個鍵的值進行排序,這里就是討論這個問題。我們可以使用array_multisort()這個函數。array_multisort() 函數對多個數組或多維數組進行排序。

參數中的數組被當成一個表的列并以行來進行排序 - 這類似 SQL 的 ORDER BY 子句的功能。第一個數組是要排序的主要數組。數組中的行(值)比較為相同的話,就會按照下一個輸入數組中相應值的大小進行排序,依此類推。

第一個參數是數組,隨后的每一個參數可能是數組,也可能是下面的排序順序標志(排序標志用于更改默認的排列順序)之一:

SORT_ASC - 默認,按升序排列。(A-Z)

SORT_DESC - 按降序排列。(Z-A)

隨后可以指定排序的類型:

SORT_REGULAR - 默認。將每一項按常規順序排列。

SORT_NUMERIC - 將每一項按數字順序排列。

SORT_STRING - 將每一項按字母順序排列。

語法:array_multisort(array1,sorting order,sorting type,array2,array3...)

array1:必需。規定輸入的數組。

sorting order:可選。規定排列順序。可能的值是 SORT_ASC 和 SORT_DESC。

sorting type:可選。規定排序類型??赡艿闹凳荢ORT_REGULAR、SORT_NUMERIC和SORT_STRING。

array2:可選。規定輸入的數組。

array3:可選。規定輸入的數組。

字符串鍵名將被保留,但是數字鍵將被重新索引,從 0 開始,并以 1 遞增??梢栽诿總€數組后設置排序順序和排序類型。如果沒有設置,每個數組參數會使用默認值。

下面是一個例子:

<?php

 $arr = '';

 echo '二維數組如下:'.'<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 '從二維數組中抽出鍵為val,單獨成另一個數組:'.'<br / >';

 foreach ($arr as $key => $row) 

 {

   $vals[$key] = $row['val'];

    $nums[$key] = $row['num'];

 }

 echo '<pre>';

 print_r($vals);

 echo '</pre>';

 echo '對其進行排序:'.'<br / >';

 array_multisort($vals, SORT_ASC, $arr);

 echo '<pre>';

 print_r($vals);

 echo '</pre>';

?>

運行結果:

二維數組如下:

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

    )

)

從二維數組中抽出鍵為val,單獨成另一個數組:

Array

(

  [0] => 46

  [1] => 8

  [2] => 37

  [3] => 32

  [4] => 19

  [5] => 30

)

對其進行排序:

Array

(

  [0] => 8

  [1] => 19

  [2] => 30

  [3] => 32

  [4] => 37

  [5] => 46

)

這樣我們將得到一個按val升序排序的二維數組。

希望本文所述對大家PHP程序設計有所幫助。

更多信息請查看網絡編程
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
未满十八18勿进黄网站免费看