資料排序有很多現成的函數,但是如果想對指定欄位進行排序就沒有內建函數了,下面我整理了一些相關的數組排序函數與大家一起交流學習學習。
先不說別的我們直接看二維數組按某個欄位排序執行個體
| 代碼如下 |
複製代碼 |
/** * @author yebihai http://www.bKjia.c0m * @desc 按二維數組的某一個欄位進行升降排序 * @data * $testData = array( array('price'=>19), array('price'=>121), array('price'=>115), array('price'=>113), array('price'=>112) ); */ class sortClass{ //升序 function sortArrayAsc($preData,$sortType='price'){ $sortData = array(); foreach ($preData as $key_i => $value_i){ $price_i = $value_i[$sortType]; $min_key = ''; $sort_total = count($sortData); foreach ($sortData as $key_j => $value_j){ if($price_i<$value_j[$sortType]){ $min_key = $key_j+1; break; } } if(empty($min_key)){ array_push($sortData, $value_i); }else { $sortData1 = array_slice($sortData, 0,$min_key-1); array_push($sortData1, $value_i); if(($min_key-1)<$sort_total){ $sortData2 = array_slice($sortData, $min_key-1); foreach ($sortData2 as $value){ array_push($sortData1, $value); } } $sortData = $sortData1; } } return $sortData; } //降序 function sortArrayDesc($preData,$sortType='price'){ $sortData = array(); foreach ($preData as $key_i => $value_i){ $price_i = $value_i[$sortType]; $min_key = ''; $sort_total = count($sortData); foreach ($sortData as $key_j => $value_j){ if($price_i>$value_j[$sortType]){ $min_key = $key_j+1; break; } } if(empty($min_key)){ array_push($sortData, $value_i); }else { $sortData1 = array_slice($sortData, 0,$min_key-1); array_push($sortData1, $value_i); if(($min_key-1)<$sort_total){ $sortData2 = array_slice($sortData, $min_key-1); foreach ($sortData2 as $value){ array_push($sortData1, $value); } } $sortData = $sortData1; } } return $sortData; } } |
後面整理一些關於數組排序的函數
資料排序函數有
•sort() 函數用於對數組單元從低到高進行排序。
•rsort() 函數用於對數組單元從高到低進行排序。
•asort() 函數用於對數組單元從低到高進行排序並保持索引關係。
•arsort() 函數用於對數組單元從高到低進行排序並保持索引關係。
•ksort() 函數用於對數組單元按照鍵名從低到高進行排序。
•krsort() 函數用於對數組單元按照鍵名從高到低進行排序。
array_multisort() 函數對多個數組或多維陣列進行排序
http://www.bkjia.com/PHPjc/632714.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632714.htmlTechArticle資料排序有很多現成的函數,但是如果想對指定欄位進行排序就沒有內建函數了,下面我整理了一些相關的數組排序函數與大家一起交流學...