<?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;
}
}
?>
分享到:
相关推荐
要对二维数组进行排序,我们不能直接使用C#内置的排序方法,如`Array.Sort()`,因为它们通常适用于一维数组。对于二维数组,我们需要自定义排序逻辑。文中提供的代码提供了一种解决方案,它首先将二维数组转换为`...
以下是一个完整的C语言程序示例,演示如何对二维数组进行冒泡排序: ```c #include int main() { int a[2][3] = {3, 2, 1, 6, 5, 4}; int b[6]; int temp; int i, j, k, y, z; k = 0; // 转换为一维数组 ...
二维数组,顾名思义,是数组中的数组,可以理解为表格形式的数据结构,每一行是一个一维数组,所有行数组组成一个二维数组。例如,一个表示学生分数的二维数组可能包含每个学生的姓名和对应的分数。 在PHP 5.4及更...
### 二、对二维数组进行排序 在PHP中,对于二维数组的排序有多种方法。以下是一些常用的排序函数及其用法。 #### 1. `sort()` 和 `rsort()` 函数 这两个函数可以对数组进行升序或降序排序。需要注意的是它们会...
// 二维数组冒泡排序 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为升序
本教程将深入探讨如何在LabVIEW中对二维数组进行排序,这在处理实验数据、进行算法分析或构建用户界面时都是必备技能。 首先,理解二维数组的基本操作至关重要。在LabVIEW中,数组通常通过数组常量、数组构造函数或...
例如,对于一个二维数组`arr`,我们可以这样进行升序排序: ```python # 假设arr是这样的二维数组:[[value1, other_data1], [value2, other_data2], ...] arr.sort(key=lambda x: x[0]) ``` 如果需要降序排序,只...
解决二维数组的排序问题 二维数组排序按照某个字段正序或倒序排列 函数
- 首先,我们可以将二维数组的元素转换成一维数组,然后使用标准的排序算法(如快速排序、归并排序)对一维数组进行排序。 - 排序完成后,根据原二维数组的行数和列数,再将一维数组重新构造回二维数组,此时元素...
一维数组转二维数组
3. **递归排序**:对基准左右两边的子数组分别进行快速排序,这个过程一直持续到子数组只有一个元素,排序结束。 在实际应用中,选择基准的方式会影响快速排序的效率。常见的方法有以下几种: - **首尾取中法**:取...
不要看分数高,这个程序绝对可以对得起大家的分数。这个楼主的研究哈!反正下了评价后分数可以返还的................
使用冒泡排序实现的java语言编写的关于二维数组的排序,实现了行、列的排序输出。
本案例"使用Excel两个一维数组构造二维数组.rar"重点讲解如何通过Excel的数组公式,将两个一维数组合并成一个二维数组,并进行加法运算。 首先,我们有两个一维数组,它们可能代表不同的数据系列或者是在不同维度上...
`bubbleSort`函数接受一个二维数组和行数作为参数,然后对每一行进行冒泡排序。注意,这里我们仅以第一列元素进行比较,因为如果需要按照其他列排序,需要对冒泡排序的逻辑进行相应的调整。 在`main`函数中,我们先...
二维数组的排序,其中包含冒泡排序、选择排序、插入排序和快速选择排序。
声明二维数组时,需要提供行数和列数,如 `int matrix[3][4]` 创建了一个3行4列的二维数组。 3. **指针**:在C++中,指针是存储内存地址的变量。可以使用指针来动态管理数组,特别是当数组大小在运行时确定时。例如...
用labview在While循环中实现二维数组的逐行排序,用两个for循环
`,这里的`$arr`就是一个二维数组。 2. **字段**: 在数据库或数组中,字段通常指的是记录中的一个属性或组成部分。例如,在上面的例子中,`'name'` 和 `'norder'` 就是每个子数组中的字段。 #### 二、PHP中多维...