php 二維數組按指定的鍵值排序
來源:程序員人生 發布時間:2013-12-23 18:57:20 閱讀次數:2987次
以前我們有講過各種php數組排序的方法,同時php也提供了大量的數據排序函數,sort(),asort(),arsort()等,下面我來給各位同學介紹二維數組按指定的鍵值排序的方法,具體實例代碼如下:
-
- function array_sort($array,$keys,$type='asc'){
- if(!isset($array) || !is_array($array) || emptyempty($array)){
- return '';
- }
- if(!isset($keys) || trim($keys)==''){
- return '';
- }
- if(!isset($type) || $type=='' || !in_array(strtolower($type),array('asc','desc'))){
- return '';
- }
- $keysvalue=array();
- foreach($array as $key=>$val){
- $val[$keys] = str_replace('-','',$val[$keys]);
- $val[$keys] = str_replace(' ','',$val[$keys]);
- $val[$keys] = str_replace(':','',$val[$keys]);
- $keysvalue[] =$val[$keys];
- }
- asort($keysvalue);
- reset($keysvalue);
- foreach($keysvalue as $key=>$vals) {
- $keysort[] = $key;
- }
- $keysvalue = array();
- $count=count($keysort);
- if(strtolower($type) != 'asc'){
- for($i=$count-1; $i>=0; $i--) {
- $keysvalue[] = $array[$keysort[$i]];
- }
- }else{
- for($i=0; $i<$count; $i++){
- $keysvalue[] = $array[$keysort[$i]];
- }
- }
- return $keysvalue;
- }
使用方法,代碼如下:
- $a=array(
- 1=>array(
- id=>1,
- price=>'79',
- ),
- 2=>array(
- id=>1,
- price=>'68',
- ),
- );
就使用:array_sort($a,'price');
php數組排序函數
sort (&$arr[,fruits]) 對數組進行從低到高排序,并賦予新的鍵名 返回bool
rsort (&$arr[,fruits]) 對數組進行逆向排序,并賦予新的鍵名
asort (&$arr[,fruits]) 對數組進行排序,并保持索引不變
arsort(&$arr[,fruits]) 對數組進行逆向排序,并保持索引不變
ksort (&$arr [,fruits]) 對數組按照鍵名進行排序
krsort(&$arr [,fruits]) 對組數按照鍵名進行逆向排序
natsort(&$arr) 對數組鍵值進行‘自然排序法’按照長度,字母排序等
natcasesort(&$arr) 對數組進行不區分大小寫的‘自然排名’
usort (&$arr,cmp_function ) 用戶自定義函數對一個數組進行排序,重新排列鍵名
uksort (&$arr,cmp_function ) 用戶自定義函數對一個數組進行鍵名排序
uasort (&$arr,cmp_function) 用戶自定義函數對數組進行排序 并保持索引不變
array_multisort($arr,mixed) 第二個參數是可以根據值改變排序行為
SORT_REGULAR 正常比較單元 SORT_NUMERIC 單元被作為數字來比較
SORT_STRING 單元被作為字符串來比較 SROT_LOCALE_STRING 根據當前的local 設置來把單元當做字符串比較
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈