<?php
/**
* @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;
}
}
?>
分享到:
相关推荐
使用php对二维数组按数组值进行排序,由于使用[]形式,因此要求PHP版本>5.4,要移植到其它版本请随便
php处理二维数组(去除重复项,排序,转换,去空白等)
NewArrays(),为存放结果数组,SortColumnsOrOrders(),传递排序参数数组,偶数个为排序列号,奇数为升降序,0为升序,1为降序;FieldRow,是否有字段行(第一行),true为有字段行,false为无字段行,默认为无字段行;...
// 二维数组冒泡排序 public static void main(String[] args) { int i=0, j=0, temp = 0; int[][] nums1 = { { 34, 1, 22, 5 }, { 28, 98, 15, 32 }, { 33, -5, 17, 41 } }; int rows = nums1.length; //二维...
php对二维数组按数组键值进行排序 @param array $array 要排序的数组 @param string $key 排序依据字段 @param string $order 排序方式,0为降序,1为升序
主要介绍了C#实现对二维数组排序的方法,实例分析了C#数组遍历与排序的相关技巧,需要的朋友可以参考下
一维数组转二维数组
1/根据两点4个值,以及一个x,求插值y 2/根据二维数组的第一列数值大小排序(降序) 3/根据二维数组的第一列数值大小排序(升序) 4/根据许多个点,以及一个x,求插值y
解决二维数组的排序问题 二维数组排序按照某个字段正序或倒序排列 函数
不要看分数高,这个程序绝对可以对得起大家的分数。这个楼主的研究哈!反正下了评价后分数可以返还的................
使用冒泡排序实现的java语言编写的关于二维数组的排序,实现了行、列的排序输出。
二维数组的排序,其中包含冒泡排序、选择排序、插入排序和快速选择排序。
思路以及注意点、说明我都加在了代码旁边的注释里,好好悟悟!
使用快速排序法对一维数组进行排序,程序完全可以运行,方便大家学习
用labview在While循环中实现二维数组的逐行排序,用两个for循环
C# json 一维数组 和 二维数组的转换 写的非常详细,对大家有帮助
将labview内二维数组方便的转化为一维数组使用
用C++语音实现一维数组二维数组写入txt,从txt中读取数据存到一维数组、二维数组,数组用指针表示
使用Excel两个一维数组构造二维数组.rar,本例所示的Sheet1工作表已经定义了两个一维数组,利用公式对这连个数组进行加法运算,可以生成一个新的二维数组。
通过vue解析表头合并的表格,后台返回的数据格式为[{name:aa,list:[{value:100}]}] 通过table与v-for组合循环数据达到目的。 vue 表头合并数据解析 vue 二维数组解析 vue 二维list解析 vue table+v-for