PHP 多維陣列排序 usort,uasort

2021-06-06 01:53:41 字數 1403 閱讀 2842

數字索引陣列: 

bool usort( array &$array, callback $cmp_function ) 

usort函式對指定陣列(引數1)按指定方式(引數2)進行排序。 

當我們想對多維陣列進行排序時,多維陣列的每個元素又是一陣列型別,而兩個陣列如何比較大小?這是需要使用者自定義的(是按每個陣列的第一元素比較還是…)。 

複製**

**如下:

<?php 

//定義多維陣列 

$a = array( 

array("sky", "blue"), 

array("tree", "green")); 

//自定義陣列比較函式,按陣列的第二個元素進行比較。 

function my_compare($a, $b)  

//排序 

usort($a, 'my_compare'); 

//輸出結果 

foreach($a as $elem)  

?> 

結果為: 

複製**

**如下:

sky : blue 

tree : green 

關聯陣列: 

bool uasort(array &$array, callback $cmp_function) 

bool uksort(array &$array, callback $cmp_function) 

uasort, uksort用法與usort相同,其中uasort()對關聯陣列的值(value)進行排序,uksort()對關聯陣列的關鍵字(key)進行排序。 

複製**

**如下:

<?php 

$a = array( 

'sunday' => array(0,'7th'), 

'friday' => array(5,'5th'), 

'tuesday'=> array(2,'2nd')); 

function my_compare($a, $b)  

//按$a陣列的值的第二個元素(7th,5th,2nd)進行排序 

uasort($a, 'my_compare'); 

foreach($a as $key => $value)  

//按$a陣列的關鍵字的第二個字元(r,u,u)進行排序 

uksort($a, 'my_compare'); 

foreach($a as $key => $value)  

?> 

結果為: 

tuesday : 2 2nd 

friday : 5 5th 

sunday : 0 7th 

friday : 5 5th 

sunday : 0 7th 

tuesday : 2 2nd

php 多維陣列排序

之前在做乙個功能的時候,必須要把資料放到二維陣列裡並且排序,然後上網找找解決思路,這時候會用到array multisort函式,在那之前我都不知道有這個函式 array multisort 函式對多個陣列或多維陣列進行排序 先來看乙個例項 data array 0 array one 34,two...

PHP多維陣列排序

在php中,對各種陣列排序,歸功於陣列函式 sort ksort rsort asort 等,使用他們進行各種排序,但是用於多維陣列就沒那麼方便簡單。這篇文章介紹 usort 和 array multisort 處理多維陣列排序。對於多維緯度排序使用usort 函式 自定義的比較函式對陣列中的元素進...

php多維陣列排序

問題 有這樣乙個陣列 arr 1 array 3 2 array 3 要求按照時間20140626 190411來排序 這個用到了php的多維陣列排序array mutisort 函式,用法如下 foreach arr as key row 0 9 row 0 match 使用正則表達從 r1822...