如何運(yùn)用PHP函數(shù)usort()實(shí)現(xiàn)自定義排序
在PHP語言中進(jìn)行數(shù)組排序的方式有許多種,包括按照值排序,按照關(guān)鍵字排序,自然語言排序等等。今天我們要教給大家的是運(yùn)用PHP函數(shù)usort()來實(shí)現(xiàn)自定義的數(shù)組排序。你可以通過創(chuàng)建你自己的比較函數(shù),并把它傳遞給PHP函數(shù)usort(),如果***個(gè)參數(shù)比第二個(gè)參數(shù)“小”的話,比較函數(shù)必須返回一個(gè)比0小的數(shù),如果***參數(shù)比第二個(gè)參數(shù)“大”的話,比較函數(shù)應(yīng)該返回一個(gè)比0大的數(shù)。
#t#Listing I就是PHP函數(shù)usort()的一個(gè)例子,在這個(gè)例子中根據(jù)它們的長度對數(shù)組元素進(jìn)行排序,最短的項(xiàng)放在最前面:
- <?php
- $data = array("joe@host.com", "john.doe@gh.co.uk",
"asmithsonian@us.info", "jay@zoo.tw");usort($data, 'sortByLen');- print_r($data); function sortByLen($a, $b) {
- if (strlen($a) == strlen($b)) {
- return 0;
- } else {
- return (strlen($a) > strlen($b)) ? 1 : -1;
- }
- }
- ?>
這樣,就創(chuàng)建了我們自己的比較函數(shù),這個(gè)函數(shù)使用PHP函數(shù)usort()比較每一個(gè)字符串的個(gè)數(shù),然后分別返回1,0或-1.這個(gè)返回值是決定元素排列的基礎(chǔ)。下面是它的輸出結(jié)果:
Array ([0] => jay@zoo.tw
[1] => joe@host.com
[2] => john.doe@gh.co.uk
[3] => asmithsonian@us.info
)
希望大家能夠通過這段示例代碼學(xué)到PHP函數(shù)usort()的具體使用方式。