在中進行數組排序的方式有許多種,包括按照值排序,按照關鍵字排序,自然語言排序等等。今天我們要教給大家的是運用PHP函數usort()來實現自定義的數組排序。你可以通過創建你自己的比較函數,並把它傳遞給PHP函數usort(),如果第一個參數比第二個參數“小”的話,比較函數必須返回一個比0小的數,如果第一參數比第二個參數“大”的話,比較函數應該返回一個比0大的數。
Listing I就是PHP函數usort()的一個例子,在這個例子中根據它們的長度對數組元素進行排序,最短的項放在最前面:
- <?php
- $data = array("[email protected]", "[email protected]",
"[email protected]", "[email protected]");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;
- }
- }
- ?>
這樣,就創建了我們自己的比較函數,這個函數使用PHP函數usort()比較每一個字符串的個數,然後分別返回1,0或-1.這個返回值是決定元素排列的基礎。下面是它的輸出結果:
Array ([0] => [email protected]
[1] => [email protected]
[2] => [email protected]
[3] => [email protected]
)
希望大家能夠通過這段示例代碼學到PHP函數usort()的具體使用方式。