您的位置:首页 > 编程语言 > PHP开发

PHP中按二维数组的某个字段进行排序类

2012-06-06 13:13 573 查看
<?php
/**
* @from author paul <199921128@qq.com>
* @desc 按二维数组的某一个字段进行升降排序
* @data
*      $testData = array(
array('newPrice'=>9),
array('newPrice'=>21),
array('newPrice'=>15),
array('newPrice'=>13),
array('newPrice'=>12)
);
*/
class sortClass{
//升序
function sortArrayAsc($preData,$sortType='newPrice'){
$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='newPrice'){
$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;
}
}
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: