溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php中如何將數(shù)組按大小進(jìn)行排序

發(fā)布時(shí)間:2020-06-21 15:18:22 來源:億速云 閱讀:971 作者:鴿子 欄目:編程語言

1、sort()簡單排序

sort() 函數(shù)對(duì)數(shù)值數(shù)組進(jìn)行升序排序。

將一個(gè)數(shù)組元素從低到高進(jìn)行簡單排序,這個(gè)函數(shù)既可以按數(shù)字大小排列也可以按字母順序排列。

實(shí)例如下:

<?php    
$data = array(5,8,1,7,2);    
sort($data);    
print_r($data); 
?>

輸出結(jié)果如下所示:

Array ( [0] => 1 [1] => 2 [2] => 5 [3] => 7 [4] => 8 )

2、rsort()簡單排序倒序

rsort() 函數(shù)對(duì)數(shù)值數(shù)組進(jìn)行降序排序。

rsort()函數(shù)對(duì)數(shù)組元素進(jìn)行從高到低的倒排,同樣可以按數(shù)字大小排列也可以按字母順序排列。

實(shí)例如下:

<?php    
$data = array(5,8,1,7,2);
rsort($data); 
print_r($data);
?>

它的輸出結(jié)果如下:

Array ([0] => 8 [1] => 7 [2] => 5 [3] => 2 [4] => 1 )

3、usort()根據(jù)用戶自定義的規(guī)則排序

usort() 使用用戶自定義的比較函數(shù)對(duì)數(shù)組進(jìn)行排序。

PHP能讓你定義自己的排序算法,你可以通過創(chuàng)建你自己的比較函數(shù),并把它傳遞給usort()函數(shù)。

如果第一個(gè)參數(shù)比第二個(gè)參數(shù)“小”的話,比較函數(shù)必須返回一個(gè)比0小的數(shù),如果第一參數(shù)比第二個(gè)參數(shù)“大”的話,比較函數(shù)應(yīng)該返回一個(gè)比0大的數(shù)。

在下面的例子中根據(jù)它們的長度對(duì)數(shù)組元素進(jìn)行排序,最短的項(xiàng)放在最前面:sortByLen 里面必須是固定格式。

實(shí)例如下:

<?php    
$data = array("joe@", "@", "asmithsonian@", "jay@");
usort($data, 'sortByLen');    
print_r($data); 
function sortByLen($a, $b) {        
    if (strlen($a) == strlen($b)) {
       return;
   } else {
     return (strlen($a) > strlen($b)) ? 1 : -1;
   }
}
?>

這樣,就創(chuàng)建了我們自己的比較函數(shù),這個(gè)函數(shù)使用strlen()函數(shù)比較每一個(gè)字符串的個(gè)數(shù),然后分別返回1、0或-1。這個(gè)返回值是決定元素排列的基礎(chǔ)。

輸出結(jié)果:

Array (
    [0] => @
    [1] => joe@
    [2] => jay@
    [3] => asmithsonian@
)

以上就是php中按大小進(jìn)行排序的函數(shù)有哪些的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注億速云其它相關(guān)文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI