多維陣列排序

2021-07-24 21:13:32 字數 1111 閱讀 6893

在專案的開發應用中,我們幾乎是一直在和陣列打交道。常用的陣列函式有sort()、ksort()等相關函式,使用它們可以很方便的處理一維陣列,比如按鍵值降序和公升序的排列。但這些函式不是很方便的處理多維陣列。

<?php

$a = array(

array('sky'),'blue'),

array('tree','green')

);?>

這是乙個簡單的二維陣列,陣列的元素也是陣列。我們可能需要對userid這個鍵排序,或者按漢字或英文本元排序。

uasort函式接受兩個引數,並且返回乙個值表示哪個引數應該排在前面。負數或false 意味著第乙個引數應該排在第二個引數之前。正數或者true表示第二個引數應該排在前面,如果值為0,則表示兩個引數相等。

此時,我們可以進行自定義函式:

function

my_compare

($a,$b)

else

if($a[1] == $b[1])

else

}

這樣一來,我們可以再後面使用uasort呼叫這個自定義函式:

uasort($a,'my_compare');
php會把內層陣列不斷傳送給此定義的函式,從而將它排序完成。想要了解排序細節,我們可以輸出函式裡被比較的值,就可以看出自定義排序是如何被呼叫的。

完整排序**:

<?php

//定義多維陣列

$a = array(

array('sky'),'blue'),

array('tree','green')

);//自定義陣列比較函式,按照陣列的第二個函式進行比較

function

my_compare

($a,$b)

else

if($a[1] == $b[1])

else

}//排序

usort($a,'my_compare');

//輸出結果

foreach($a

as$elem)

?>

多維陣列排序

purpose 二維陣列排序 method name array sort parameters array array 要排序的二維陣列 string row 排序依據列 string type 排序型別 asc or desc return array array temp 排好序的陣列 fun...

php 多維陣列排序

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

PHP多維陣列排序

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