PHP排序函數sort、asort、rsort、krsort、ksort區別分析

在php中對于簡單的數據排序爲我們提供了sort、asort、rsort、krsort、ksort函數了,下文我來給各位簡單的介紹sort、asort、rsort、krsort、ksort函數的區別了。

在php中自帶了大量了數組排序函數,下面我們一一來介紹一下關于php數組排序的用法吧。

sort() 函數用于對數組單元從低到高進行排序。
rsort() 函數用于對數組單元從高到低進行排序。
asort() 函數用于對數組單元從低到高進行排序並保持索引關系。
arsort() 函數用于對數組單元從高到低進行排序並保持索引關系。
ksort() 函數用于對數組單元按照鍵名從低到高進行排序。
krsort() 函數用于對數組單元按照鍵名從高到低進行排序。

sort()

PHP sort() 函數用于對數組單元從低到高進行排序,如果成功則返回 TRUE,失敗則返回 FALSE。
注意:本函數會爲排序的數組中的單元賦予新的鍵名,這將刪除原有的鍵名而不僅是重新排序。
語法:
bool sort( array &array [, int sort_flags] )
可選參數 sort_flags 用于改變排序的行爲:
sort_flags 取值 說明
SORT_REGULAR 正常比較單元
SORT_NUMERIC 單元被作爲數字來比較
SORT_STRING 單元被作爲字符串來比較
SORT_LOCALE_STRING 根據當前的區域(locale)設置來把單元當作字符串比較

例子:

$arr = array("b", "a", "c");
sort($arr);
print_r($arr);
?>

Array ( [0] => a [1] => b [2] => c )

在本例中, $arr 數組單元被按照字母順序排序,而數組單元經過排序後,鍵值重新分配。

rsort()
PHP rsort() 函數行爲與 sort() 相反,對數組單元進行由高到低排序,請參考 sort() 函數使用。

asort()
PHP asort() 函數用于對數組單元從低到高進行排序並保持索引關系,如果成功則返回 TRUE,失敗則返回 FALSE。
語法:
bool asort( array &array [, int sort_flags] )
可選參數 sort_flags 用以改變排序的行爲,具體參見 sort()。

例子:

$arr = array("b", "a", "c");
asort($arr);
print_r($arr);
?>

運行該例子輸出:

Array ( [1] => a [0] => b [2] => c )

arsort()

PHP arsort() 函數行爲與 asort() 相反,對數組單元進行由高到低排序並保持索引關系,請參考 asort() 函數使用。

ksort()

PHP ksort() 函數用于對數組單元按照鍵名從低到高進行排序,如果成功則返回 TRUE,失敗則返回 FALSE。
本函數會保留原來的鍵名,因此常用于關聯數組。

語法:
bool ksort( array &array [, int sort_flags] )

可選參數 sort_flags 用以改變排序的行爲,具體參見 sort()。
例子:

$arr = array("b"=>18, "a"=>20, "c"=>25);
ksort($arr);
print_r($arr);
?>

運行該例子輸出:

Array ( [a] => 20 [b] => 18 => 25 )

krsort()
PHP krsort() 函數行爲與 ksort() 相反,對數組單元按照鍵名進行由高到低排序,請參考 ksort() 函數使用

更多相關文章
  • shuffle數組值隨便排序函數*/$typename=20;$rtitle='tt';for( $i=0;$i<=20;$i++){ $rtitle_rand = array($typename,$rtitle,$
  • sort是array對象自帶的方法,可以對array中的元素按升序的方式進行排列.如果sort方法沒有指定參數,那麽array的元素會按照字符的編碼數據進行排序.如果想對其他類型的元素進行排序,就需要自己實現一個比較
  • SQL中ROW_NUMBER() 排序函數使用詳解
    sql中ROW_NUMBER() 就是生成一個有順序的行號,而他生成順序的標准,就是後面緊跟的OVER(ORDER BY ID)--還必須添加OVER語句以便告訴SQL Server你希望怎樣添加行序號了,下文重點給各位介紹ROW_NUMBER函數用法.以前寫過一篇文章排序提到過ROW_NUMBER
  • 參數中的數組被當成一個表的列並以行來進行排序 - 這類似 sql 的 order by 子句的功能.第一個數組是要排序的主要數組.數組中的行(值)比較爲相同的話,就會按照下一個輸入數組中相應值的大小進行排序,依此類推
  • php中strpos函數判斷字符存在誤區
    在php中strpos是查找字符串首次出現的位置,如果存在就返回ture或相關具體數字,沒
  • 本文章介紹mssql server中char和varchar數據效能對比分析,詳細的利用實例來說明兩者的關系,有需要了解的朋友可以參考一下.1. char 固定長度,最長n個字符.2. varchar 最大長度爲n的
  • 下面給各位同學整理了一些關于php array數組的相關處理函數and str字符串處理與正則表達式,希望文章對你會有所幫助.數組的相關處理函數:1)數組的鍵值操作函數 array_values();//獲取數組中的值array_keys();//獲取數組中的鍵in_array();//檢查一個值是
  • 本文章來給大家分析一下關于javascript 定時函數setInterval()與setTimeout()用法與區別,有需要了解的同學可參考參考.setTimeout(表達式,延遲時間)是定時程序,也就是在什麽時間
一周排行
  • 記得在幾年前一個朋友沒有做數據庫備份但以前安裝mysql時開啓二進制日志功能,結果這一次這個二進制日志就救了它一命了,下面我們來看看在CentOS 6.5 x86_64操作binlog日志的例子.系統環境:伺服器系統
  • 一.單頁面淘寶客 模式特點;主要利用seo教程+暴利産品+長尾詞+單頁面模式來操作淘寶客,高轉換,高利潤.制作簡單,收益快. 操作要點:雖然目前這種模式競爭比較激烈,關鍵是要尋找到競爭不激烈的産品,同時要選擇轉換率高 ...
  • 本文章給大家介紹一個nginx伺服器防sql注入/溢出攻擊/spam及禁User-agents實例代碼,有需要了解的朋友可進入參考.在配置文件添加如下字段即可 代碼如下 server { ## 禁SQL注入 Bloc
  • 三星Galaxy S6 edge如何安裝SIM卡(G9250)
    三星Galaxy S6 edge如何安裝SIM卡?(G9250),小編看了全文發現這個功能 ...
  • 本文章來給各位同學介紹C# DataGridView控件綁定數據後清空數據,有需要了解的朋友可參考,希望此文章對各位有所幫助.在清除DataGridview的數據時:1.DataSource爲NULL(DataGri ...
  • 本文章來給各位同學介紹一下關于Grunt入門教程之學習筆記 ,希望此教程對各位同學會有所幫助哦.我現在在幾個小專案中一直在使用Node.js.在Node系統中有一些很強大的工具.我最喜歡的一個例子就是Grunt.Gr ...
  • jquery lazyload插件一基于jquery庫的一個圖片延遲載入的代碼了,我們只要簡單的幾行代碼就能實現圖片延遲載入了哦,下面來給大家分享一個測試例子,希望對各位有帶來幫助呀.借助 jquery lazylo
  • 一個合格的程序員在實現數據入庫中時我們都會有一些非常嚴密的過濾與數據規則了,像我們文件上傳時在前段要判斷用戶是否選擇上傳文件同時在後台也可判斷是否有上傳的文件了,下面我們就一起來看看相關例子吧.如下html代碼如 代
  • JMX就是Java Management Extentions,爲Java程序提供管理功能的框架.看了幾個介紹,感覺這個說明比較通俗易懂.一句話說就是JMX爲你提供了一個通過特定協定管理應用程序的方案,而我們這裏主要 ...
  • 站長可能都知道, 如果一個連接加了rel=\'noflow\' 屬性, 就表示告訴搜索引擎不用跟蹤這個連接從而不傳遞權重. 細心的站長可能會發現很多博客的友情鏈接上都加了這個屬性, 這樣做的目的避免自己網站的權重被稀