先不說別的我們直接看二維數組按某個字段排序實例
代碼如下
<?php
/**
* @author yebihai http://www.45it.com
* @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() 函數對多個數組或多維數組進行排序