校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > PHP常見數組排序方法小結

PHP常見數組排序方法小結

熱門標簽:合肥企業外呼系統線路 桂陽公司如何做地圖標注 電信外呼系統多少錢一個月 神龍斗士電話機器人 企業400電話辦理多少費用 太原400電話申請流程 代理打電話機器人 宿州正規外呼系統軟件 萍鄉商鋪地圖標注

本文實例講述了PHP常見數組排序方法。

一、數組操作的基本函數

數組的鍵名和值
array_values($arr); 獲得數組的值
array_keys($arr); 獲得數組的鍵名
array_flip($arr); 數組中的值與鍵名互換(如果有重復前面的會被后面的覆蓋)
in_array("apple",$arr); 在數組中檢索apple
array_search("apple",$arr); 在數組中檢索apple ,如果存在返回鍵名
array_key_exists("apple",$arr); 檢索給定的鍵名是否存在數組中
isset($arr[apple]): 檢索給定的鍵名是否存在數組中

數組的內部指針
current($arr); 返回數組中的當前單元
pos($arr); 返回數組中的當前單元
key($arr); 返回數組中當前單元的鍵名
prev($arr); 將數組中的內部指針倒回一位
next($arr); 將數組中的內部指針向前移動一位
end($arr); 將數組中的內部指針指向最后一個單元
reset($arr; 將數組中的內部指針指向第一個單元
each($arr); 將返回數組當前元素的一個鍵名/值的構造數組,并使數組指針向前移動一位
list($key,$value)=each($arr); 獲得數組當前元素的鍵名和值

數組和變量之間的轉換
extract($arr);用于把數組中的元素轉換成變量導入到當前文件中,鍵名當作變量名,值作為變量值
注:(第二個參數很重要,可以看手冊使用)使用方法 echo $a;
compact(var1,var2,var3);用給定的變量名創建一個數組

二、數組的分段和填充

數組的分段
array_slice($arr,0,3); 可以將數組中的一段取出,此函數忽略鍵名
array_splice($arr,0,3,array("black","maroon")); 可以將數組中的一段取出,與上個函數不同在于返回的序列從原數組中刪除

分割多個數組
array_chunk($arr,3,TRUE); 可以將一個數組分割成多個,TRUE為保留原數組的鍵名

數組的填充
array_pad($arr,5,'x'); 將一個數組填補到制定長度

三、數組與棧

array_push($arr,"apple","pear"); 將一個或多個元素壓入數組棧的末尾(入棧),返回入棧元素的個數
array_pop($arr); 將數組棧的最后一個元素彈出(出棧)

四、數組與列隊

array_shift($arr);數組中的第一個元素移出并作為結果返回(數組長度減1,其他元素向前移動一位,數字鍵名改為從零技術,文字鍵名不變)
array_unshift($arr,"a",array(1,2));在數組的開頭插入一個或多個元素

五、回調函數

array_walk($arr,'function','words'); 使用用戶函數對數組中的每個成員進行處理(第三個參數傳遞給回調函數function)
array_mpa("function",$arr1,$arr2); 可以處理多個數組(當使用兩個或更多數組時,他們的長度應該相同)
array_filter($arr,"function"); 使用回調函數過濾數組中的每個元素,如果回調函數為TRUE,數組的當前元素會被包含在返回的結果數組中,數組的鍵名保留不變
array_reduce($arr,"function","*"); 轉化為單值函數(*為數組的第一個值)

六、數組的排序

通過元素值對數組排序
sort($arr); 由小到大的順序排序(第二個參數為按什么方式排序)忽略鍵名的數組排序
rsort($arr); 由大到小的順序排序(第二個參數為按什么方式排序)忽略鍵名的數組排序
usort($arr,"function"); 使用用戶自定義的比較函數對數組中的值進行排序(function中有兩個參數,0表示相等,正數表示第一個大于第二個,負數表示第一個小于第二個)忽略鍵名的數組排序
asort($arr); 由小到大的順序排序(第二個參數為按什么方式排序)保留鍵名的數組排序
arsort($arr); 由大到小的順序排序(第二個參數為按什么方式排序)保留鍵名的數組排序
uasort($arr,"function"); 使用用戶自定義的比較函數對數組中的值進行排序(function中有兩個參數,0表示相等,正數表示第一個大于第二個,負數表示第一個小于第二個)保留鍵名的數組排序

通過鍵名對數組排序
ksort($arr); 按照鍵名正序排序
krsort($arr); 按照鍵名逆序排序
uksort($arr,"function"); 使用用戶自定義的比較函數對數組中的鍵名進行排序(function中有兩個參數,0表示相等,正數表示第一個大于第二個,負數表示第一個小于第二個)

自然排序法排序

natsort($arr); 自然排序(忽略鍵名)
natcasesort($arr); 自然排序(忽略大小寫,忽略鍵名)

七、數組的計算

數組元素的求和
array_sum($arr); 對數組內部的所有元素做求和運算

數組的合并
array_merge($arr1,$arr2); 合并兩個或多個數組(相同的字符串鍵名,后面的覆蓋前面的,相同的數字鍵名,后面的不會做覆蓋操作,而是附加到后面)
“+”$arr1+$arr2; 對于相同的鍵名只保留后一個
array_merge_recursive($arr1,$arr2); 遞歸合并操作,如果數組中有相同的字符串鍵名,這些值將被合并到一個數組中去。如果一個值本身是一個數組,將按照相應的鍵名把它合并為另一個數組。當數組 具有相同的數組鍵名時,后一個值將不會覆蓋原來的值,而是附加到后面

數組的差集
array_diff($arr1,$arr2); 返回差集結果數組
array_diff_assoc($arr1,$arr2,$arr3); 返回差集結果數組,鍵名也做比較

數組的交集
array_intersect($arr1,$arr2); 返回交集結果數組
array_intersect_assoc($arr1,$arr2); 返回交集結果數組,鍵名也做比較

八、其他的數組函數

range(0,12); 創建一個包含指定范圍單元的數組
array_unique($arr); 移除數組中重復的值,新的數組中會保留原始的鍵名
array_reverse($arr,TRUE); 返回一個單元順序與原數組相反的數組,如果第二個參數為TRUE保留原來的鍵名
//srand((float)microtime()*10000000); 隨機種子觸發器
array_rand($arr,2); 從數組中隨機取出一個或 多個元素
shuffle($arr); 將數組的順序打亂

分類: 整理分享給大家供大家參考,具體如下:

1.簡單數組排序 sort() 函數和rsort() 函數:

bool sort(array array [,int sort_flags]

bool rsort(array array [.int_sort_flags]

參數:第一個參數是排序數組對象

第二個參數是可以選的 可選值:

SORT_REGULAR:是默認值,將自動識別數組的元素類型進行排序
SORT_NUMERIC:用于數組元素排序
SORT_STRING:用于字符串排序
SORT_LOCALE_STRING:根據當前的locale設置來把元素當作字符串比較

示例:

$a=array(4,7,9,1);
sort($a);
pirnt_r($a);
rsort($a);
print_r($a);

2.根據鍵名對數組排序

ksort() 函數按照鍵名對數組進行有小到大的排序。 krsort()ksort()函數相反,排序后為數組值保持原來的鍵。

示例:

$data= array(5=>"five",8=>"eight",1=>"one",7=>"seven");
ksrot($data);
print_r($data);
krsot($data);
print_r($data);

3.根據元素值排序

asort() 從小到大 arsort() 從大到小,用這個函數排序,原始鍵名將被忽略,使用依次數字重新索引數組下標

$data=array("a"=>1,"b"=>2,"c"=>3);
asort($data);
print_r($data);
arsort($data);
print_r($data);

4.自然排序

是個非常特殊的排序方式,這種方式使用認知而不是使用計算規則,這種特性稱為——自然排序法,即數字從1到9,字母從a-z,短者優先。

示例:

$data=array("file1.txt","file11.txt","file111.txt");
natsort($data);//普通自然排序
natcasesort($data);//忽略大小寫

5.根據用戶自定義排序規則

bool usort(array array ,callback cmp_function)
bool uasort(array array,callback cmp_function)
bool uksort(array array,callback cmp_function)

自定義回調函數,需要兩個參數,分別是數組兩個連續元素,比較第一個參數小于,大于,等于第二個參數是分別返回 0,1,-1

$data= array("ab","abc","a","ac","abcd");
usrot($data,"mysortByLen");
function mysortByLen($one,$two){
 if(strlen($one)== strlen($two)){
 return 0;
 }else{
 return (strlen($one)>strlen($two))?1:-1;
}

6.多維數組排序

array_multisort()函數對多個數組排序,或者根據某一維或多維對多維數組排序。

bool array_multisort(array array1 [,mixed arg,[,array ....]])

示例:

$data=array(
 array("id"=>1,"name"=>4),
 array("id"=>1,"name"=>2),
 array("id"=>2,"name"=>3)
);
foreach($data as $key=>$value){
 $ids[$key]=$value["id"];
 $names[$key]=$value["name"]
}
array_multisort($data,$ids,$names);
print_r($data);

輸出如下:

array(
   array("id"=>1,"name"=>2),
   array("id"=>1,"name"=>4),
   array("id"=>2,"name"=>3)
);

PS:這里再為大家推薦一款關于排序的演示工具供大家參考:

在線動畫演示插入/選擇/冒泡/歸并/希爾/快速排序算法過程工具:
http://tools.jb51.net/aideddesign/paixu_ys

更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP數組(Array)操作技巧大全》、《php排序算法總結》、《PHP數據結構與算法教程》、《php程序設計算法總結》、《php字符串(string)用法總結》及《PHP常用遍歷算法與技巧總結》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:
  • PHP 數組排序方法總結 推薦收藏
  • php中二維數組排序問題方法詳解
  • array_multisort實現PHP多維數組排序示例講解
  • php簡單實現多維數組排序的方法
  • PHP 冒泡排序 二分查找 順序查找 二維數組排序算法函數的詳解
  • php不用內置函數對數組排序的兩個算法代碼
  • php 數組排序 array_multisort與uasort的區別
  • php關于array_multisort多維數組排序的使用說明
  • PHP數組排序之sort、asort與ksort用法實例
  • PHP 簡單數組排序實現代碼

標簽:衡陽 太原 崇左 綏化 辛集 白銀 鄂州 廊坊

巨人網絡通訊聲明:本文標題《PHP常見數組排序方法小結》,本文關鍵詞  PHP,常見,數組,排序,方法,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP常見數組排序方法小結》相關的同類信息!
  • 本頁收集關于PHP常見數組排序方法小結的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    亚洲人成网站在线| 欧美情侣在线播放| 亚洲精品免费在线观看| 亚洲色图欧洲色图婷婷| 舔着乳尖日韩一区| 成人不卡免费av| 91久久精品午夜一区二区| 欧美激情一区二区三区不卡| 色吊一区二区三区| 欧美一级艳片视频免费观看| 精品国产污网站| 国产精品色噜噜| 美女任你摸久久| 日韩亚洲欧美在线| 亚洲aaa精品| 91麻豆自制传媒国产之光| 亚洲日本一区二区三区| 午夜精品久久久久久久久| 婷婷国产在线综合| 在线观看日韩精品| 亚洲国产激情av| 国产精品一二三| 丝袜美腿高跟呻吟高潮一区| 欧美精品一区二区在线播放| 亚洲综合视频在线观看| 日本欧美一区二区三区乱码| 欧美综合欧美视频| 4438亚洲最大| 欧美日韩一区高清| 亚洲国产毛片aaaaa无费看| 国产亚洲欧美在线| 亚洲最大成人网4388xx| 91麻豆免费在线观看| 青青青爽久久午夜综合久久午夜| 色综合欧美在线| 国产成a人亚洲| 亚洲激情男女视频| 26uuu久久天堂性欧美| 亚洲成av人影院| 久久久久久久免费视频了| 国产美女视频一区| 日韩精品一区二区在线观看| 99久久99久久久精品齐齐| 国产精品色婷婷| 久久精品水蜜桃av综合天堂| 水野朝阳av一区二区三区| 一区二区日韩av| 欧美精品乱人伦久久久久久| 成人国产在线观看| 经典三级一区二区| 免费视频最近日韩| 亚洲日本一区二区| 亚洲色图制服丝袜| 久久午夜免费电影| 国产亚洲欧美激情| 精品久久久久久久久久久久包黑料| 欧美午夜寂寞影院| 狠狠色狠狠色综合日日91app| 欧美国产国产综合| 国产精品污网站| 亚洲精品一区二区三区精华液| 91精品国产一区二区| 日本精品视频一区二区| 在线精品视频一区二区| 久久精品国产久精国产| 久久精品国产99| 狠狠色狠狠色综合系列| 蜜臀精品一区二区三区在线观看| 一区二区视频在线看| 亚洲人快播电影网| 综合久久久久久久| 亚洲综合男人的天堂| 国产精品久久久久一区二区三区 | 色视频一区二区| 国产黄色精品视频| 精品一区二区三区久久| 一区二区三区成人在线视频| 亚洲精品大片www| 亚洲成av人影院| 精品一区二区三区在线观看国产| 精品一区二区三区免费毛片爱| 午夜精品福利一区二区蜜股av| 亚洲国产aⅴ成人精品无吗| 亚洲黄色小视频| 夜夜夜精品看看| 狠狠v欧美v日韩v亚洲ⅴ| jlzzjlzz亚洲日本少妇| 欧美精品电影在线播放| 日韩亚洲欧美在线观看| 日韩三级视频在线看| 在线观看视频一区二区| 一本色道久久综合精品竹菊| 99免费精品在线| 日韩在线播放一区二区| 一卡二卡欧美日韩| 亚洲图片欧美视频| 中文字幕在线免费不卡| 亚洲免费大片在线观看| 国产精品久久久久久久第一福利 | 亚洲综合免费观看高清在线观看| 色综合久久久久综合体| 高清shemale亚洲人妖| 国产精品美女久久久久久| 国产精品高潮呻吟| 午夜av一区二区三区| 久久精品国产精品亚洲红杏| 99久久99久久免费精品蜜臀| 欧美精品一二三| 国产精品毛片a∨一区二区三区| 亚洲图片欧美一区| 成人高清视频免费观看| 欧美一区二区三区喷汁尤物| 亚洲日韩欧美一区二区在线| 日韩高清一区二区| 在线免费一区三区| 1区2区3区精品视频| 国产乱理伦片在线观看夜一区| 99久久久久久| 日韩欧美一二三四区| 亚洲天堂av一区| 国产欧美一区二区在线| 精品一区二区在线观看| 免费视频一区二区| 亚洲精品成a人| 久草在线在线精品观看| 波多野结衣中文字幕一区 | 色悠悠久久综合| 日本一区免费视频| 免费看欧美女人艹b| 欧美福利一区二区| 亚洲不卡一区二区三区| 在线一区二区三区四区五区 | 在线免费观看日韩欧美| 国产亚洲一区字幕| 国产不卡一区视频| 欧美刺激午夜性久久久久久久| 亚洲一区成人在线| 色哟哟一区二区| 一区二区三区中文在线观看| 成人理论电影网| 综合久久国产九一剧情麻豆| 99久久国产综合色|国产精品| 国产精品毛片a∨一区二区三区| 丁香婷婷综合色啪| 久久久久99精品一区| 欧美一区三区二区| 亚洲午夜在线电影| 欧美浪妇xxxx高跟鞋交| 首页综合国产亚洲丝袜| 欧美高清视频www夜色资源网| 亚洲高清三级视频| 欧美日韩日日摸| 日韩在线一区二区三区| 精品美女一区二区三区| 国产乱理伦片在线观看夜一区| 精品国产乱码久久久久久牛牛| 激情偷乱视频一区二区三区| 久久精品男人天堂av| 狠狠色狠狠色综合日日91app| 日韩欧美国产不卡| 狠狠色丁香久久婷婷综合_中| 久久久影院官网| av色综合久久天堂av综合| 一区二区三区日韩欧美精品 | 成人性视频网站| 日韩手机在线导航| 欧美国产日本视频| 欧美色综合久久| 日本成人在线网站| 精品国产区一区| 黄色日韩三级电影| 亚洲欧洲三级电影| 欧美视频完全免费看| 免费xxxx性欧美18vr| 国产欧美日韩在线| 色偷偷久久一区二区三区| 国产精品美女久久久久av爽李琼 | 欧美精品欧美精品系列| 久久精品国产成人一区二区三区| 久久精品夜色噜噜亚洲aⅴ| 国产成人精品亚洲午夜麻豆| 亚洲三级在线观看| 欧美成人video| 9i在线看片成人免费| 亚洲v精品v日韩v欧美v专区| 日韩欧美国产不卡| 99精品国产91久久久久久| 天天综合天天综合色| 日本一区二区综合亚洲| 欧美人妇做爰xxxⅹ性高电影| 国产成人啪午夜精品网站男同| 亚洲另类春色校园小说| 日韩欧美黄色影院| 91色porny蝌蚪| 激情综合色综合久久综合| **欧美大码日韩| 欧美videos中文字幕| 99久久久免费精品国产一区二区| 毛片av中文字幕一区二区| 亚洲日本护士毛茸茸|