如何實(shí)現(xiàn)php的排序函數(shù)-創(chuàng)新互聯(lián)

這篇文章運(yùn)用簡(jiǎn)單易懂的例子給大家介紹如何實(shí)現(xiàn)php的排序函數(shù),代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),桐柏企業(yè)網(wǎng)站建設(shè),桐柏品牌網(wǎng)站建設(shè),網(wǎng)站定制,桐柏網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,桐柏網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

排序的方法多種多樣,通常情況下,我們經(jīng)常使用到的數(shù)組排序函數(shù)有:sort() 、rsort()、asort() 、arsort()、ksort()、krsort()。下面為大家一一詳細(xì)介紹。

sort(array,sortingtype);

如何實(shí)現(xiàn)php的排序函數(shù)

0 = SORT_REGULAR - 默認(rèn)。把每一項(xiàng)按常規(guī)順序排列(Standard ASCII,不改變類(lèi)型)

1 = SORT_NUMERIC - 把每一項(xiàng)作為數(shù)字來(lái)處理。

2 = SORT_STRING - 把每一項(xiàng)作為字符串來(lái)處理。

3 = SORT_LOCALE_STRING - 把每一項(xiàng)作為字符串來(lái)處理,基于當(dāng)前區(qū)域設(shè)置(可通過(guò) setlocale() 進(jìn)行更改)。

4 = SORT_NATURAL - 把每一項(xiàng)作為字符串來(lái)處理,使用類(lèi)似 natsort() 的自然排序。

5 = SORT_FLAG_CASE - 可以結(jié)合(按位或)SORT_STRING 或 SORT_NATURAL 對(duì)字符串進(jìn)行排序,不區(qū)分大小寫(xiě)。

定義和用法:

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

rsort() 函數(shù)對(duì)索引數(shù)組進(jìn)行降序排序,其他用法一樣。

注釋?zhuān)罕竞瘮?shù)為數(shù)組中的單元賦予新的鍵名。原有的鍵名將被刪除。

如果成功則返回 TRUE,否則返回 FALSE。

提示:請(qǐng)使用 rsort() 函數(shù)對(duì)索引數(shù)組進(jìn)行降序排序。

sort() 函數(shù)用于對(duì)數(shù)組單元從低到高進(jìn)行排序。

rsort() 函數(shù)用于對(duì)數(shù)組單元從高到低進(jìn)行排序。

asort() 函數(shù)用于對(duì)數(shù)組單元從低到高進(jìn)行排序并保持索引關(guān)系。

PHP asort() 函數(shù)用于對(duì)數(shù)組單元從低到高進(jìn)行排序并保持索引關(guān)系,如果成功則返回 TRUE,失敗則返回 FALSE。

arsort() 函數(shù)用于對(duì)數(shù)組單元從高到低進(jìn)行排序并保持索引關(guān)系。

PHP arsort() 函數(shù)行為與 asort() 相反,對(duì)數(shù)組單元進(jìn)行由高到低排序并保持索引關(guān)系,請(qǐng)參考 asort() 函數(shù)使用。

ksort() 函數(shù)用于對(duì)數(shù)組單元按照鍵名從低到高進(jìn)行排序。

PHP ksort() 函數(shù)用于對(duì)數(shù)組單元按照鍵名從低到高進(jìn)行排序,如果成功則返回 TRUE,失敗則返回 FALSE。本函數(shù)會(huì)保留原來(lái)的鍵名,因此常用于關(guān)聯(lián)數(shù)組。

krsort() 函數(shù)用于對(duì)數(shù)組單元按照鍵名從高到低進(jìn)行排序。

PHP krsort() 函數(shù)行為與 ksort() 相反,對(duì)數(shù)組單元按照鍵名進(jìn)行由高到低排序,請(qǐng)參考 ksort() 函數(shù)使用。

使用用戶自定義的比較函數(shù)對(duì)數(shù)組 $a 中的元素進(jìn)行排序:

usort(array,myfunction);
<?php
function my_sort($a,$b){
   if ($a==$b) return 0;
   return ($a<$b)?-1:1;
}

$a=array(4,2,8,6);
usort($a,"my_sort");

$arrlength=count($a);
for($x=0;$x<$arrlength;$x++)
   {
      echo $a[$x];
      echo "<br>";
   }?>
1、使用array_multisort

使用這個(gè)方法,會(huì)比較麻煩些,要將age提取出來(lái)存儲(chǔ)到一維數(shù)組里,然后按照age升序排列。具體代碼如下:

代碼如下:<?php
$ages = array();
foreach ($users as $user) {
  $ages[] = $user['age'];
}
array_multisort($ages, SORT_ASC, $users);

執(zhí)行后,$users就是排序好的數(shù)組了,可以打印出來(lái)看看。如果需要先按年齡升序排列,再按照名稱升序排列,方法同上,就是多提取一個(gè)名稱數(shù)組出來(lái),最后的排序方法這樣調(diào)用:

代碼如下:
array_multisort($ages, SORT_ASC, $names, SORT_ASC, $users);
2、使用usort
使用這個(gè)方法大的好處就是可以自定義一些比較復(fù)雜的排序方法。例如按照名稱的長(zhǎng)度降序排列:

代碼如下:
<?php
      usort($users, function($a, $b) {
      $al = strlen($a['name']);
      $bl = strlen($b['name']);
      if ($al == $bl) 
          return 0;      
          return ($al > $bl) ? -1 : 1;
    });

這里使用了匿名函數(shù),如果有需要也可以單獨(dú)提取出來(lái)。其中$a, $b可以理解為$users數(shù)組下的元素,可以直接索引name值,
并計(jì)算長(zhǎng)度,而后比較長(zhǎng)度就可以了。

關(guān)于如何實(shí)現(xiàn)php的排序函數(shù)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

新聞名稱:如何實(shí)現(xiàn)php的排序函數(shù)-創(chuàng)新互聯(lián)
本文路徑:http://muchs.cn/article12/dcjedc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)品牌網(wǎng)站制作、虛擬主機(jī)、ChatGPT企業(yè)網(wǎng)站制作、響應(yīng)式網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管