在專案的開發應用中,我們幾乎是一直在和陣列打交道。常用的陣列函式有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 函式 自定義的比較函式對陣列中的元素進...