本文實例分析了PHP數(shù)組函數(shù)array_multisort()用法。分享給大家供大家參考,具體如下:
有時候我們需要對二維數(shù)組的某個鍵的值進行排序,這里就是討論這個問題。我們可以使用array_multisort()這個函數(shù)。array_multisort() 函數(shù)對多個數(shù)組或多維數(shù)組進行排序。
參數(shù)中的數(shù)組被當成一個表的列并以行來進行排序 - 這類似 SQL 的 ORDER BY 子句的功能。第一個數(shù)組是要排序的主要數(shù)組。數(shù)組中的行(值)比較為相同的話,就會按照下一個輸入數(shù)組中相應值的大小進行排序,依此類推。
第一個參數(shù)是數(shù)組,隨后的每一個參數(shù)可能是數(shù)組,也可能是下面的排序順序標志(排序標志用于更改默認的排列順序)之一:
SORT_ASC - 默認,按升序排列。(A-Z)
SORT_DESC - 按降序排列。(Z-A)
隨后可以指定排序的類型:
SORT_REGULAR - 默認。將每一項按常規(guī)順序排列。
SORT_NUMERIC - 將每一項按數(shù)字順序排列。
SORT_STRING - 將每一項按字母順序排列。
語法:array_multisort(array1,sorting order,sorting type,array2,array3...)
array1:必需。規(guī)定輸入的數(shù)組。
sorting order:可選。規(guī)定排列順序。可能的值是 SORT_ASC 和 SORT_DESC。
sorting type:可選。規(guī)定排序類型。可能的值是SORT_REGULAR、SORT_NUMERIC和SORT_STRING。
array2:可選。規(guī)定輸入的數(shù)組。
array3:可選。規(guī)定輸入的數(shù)組。
字符串鍵名將被保留,但是數(shù)字鍵將被重新索引,從 0 開始,并以 1 遞增。可以在每個數(shù)組后設置排序順序和排序類型。如果沒有設置,每個數(shù)組參數(shù)會使用默認值。
下面是一個例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
<?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,單獨成另一個數(shù)組:' . '<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>' ; ?> |
運行結(jié)果:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
二維數(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,單獨成另一個數(shù)組: 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升序排序的二維數(shù)組。
希望本文所述對大家PHP程序設計有所幫助。