`
yukar
  • 浏览: 127778 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

共享一个PHP对二维数组的某个字段进行升降排序类

    博客分类:
  • php
 
阅读更多
<?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;
    }
}
?>
 
0
1
分享到:
评论

相关推荐

    C#实现对二维数组排序的方法

    要对二维数组进行排序,我们不能直接使用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对二维数组按数组值进行排序

    二维数组,顾名思义,是数组中的数组,可以理解为表格形式的数据结构,每一行是一个一维数组,所有行数组组成一个二维数组。例如,一个表示学生分数的二维数组可能包含每个学生的姓名和对应的分数。 在PHP 5.4及更...

    php处理二维数组(去除重复项,排序,转换,去空白等)

    ### 二、对二维数组进行排序 在PHP中,对于二维数组的排序有多种方法。以下是一些常用的排序函数及其用法。 #### 1. `sort()` 和 `rsort()` 函数 这两个函数可以对数组进行升序或降序排序。需要注意的是它们会...

    VB.NET二维数组快速排序(更新)

    NewArrays(),为存放结果数组,SortColumnsOrOrders(),传递排序参数数组,偶数个为排序列号,奇数为升降序,0为升序,1为降序;FieldRow,是否有字段行(第一行),true为有字段行,false为无字段行,默认为无字段行;...

    php 二维数组按数组键值进行排序

    php对二维数组按数组键值进行排序 @param array $array 要排序的数组 @param string $key 排序依据字段 @param string $order 排序方式,0为降序,1为升序

    LabVIEW二维数组排序.rar

    本教程将深入探讨如何在LabVIEW中对二维数组进行排序,这在处理实验数据、进行算法分析或构建用户界面时都是必备技能。 首先,理解二维数组的基本操作至关重要。在LabVIEW中,数组通常通过数组常量、数组构造函数或...

    根据二维数组的第一列数值大小排序

    例如,对于一个二维数组`arr`,我们可以这样进行升序排序: ```python # 假设arr是这样的二维数组:[[value1, other_data1], [value2, other_data2], ...] arr.sort(key=lambda x: x[0]) ``` 如果需要降序排序,只...

    二维数组排序按照某个字段正序或倒序排列 函数

    解决二维数组的排序问题 二维数组排序按照某个字段正序或倒序排列 函数

    labview一维数组转二维数组

    一维数组转二维数组

    java 将二维数组顺时针,逆时针排序

    - 首先,我们可以将二维数组的元素转换成一维数组,然后使用标准的排序算法(如快速排序、归并排序)对一维数组进行排序。 - 排序完成后,根据原二维数组的行数和列数,再将一维数组重新构造回二维数组,此时元素...

    使用快速排序法对一维数组进行排序

    3. **递归排序**:对基准左右两边的子数组分别进行快速排序,这个过程一直持续到子数组只有一个元素,排序结束。 在实际应用中,选择基准的方式会影响快速排序的效率。常见的方法有以下几种: - **首尾取中法**:取...

    Labview二维数组排序

    不要看分数高,这个程序绝对可以对得起大家的分数。这个楼主的研究哈!反正下了评价后分数可以返还的................

    java_二维数组冒泡行列排序源代码

    使用冒泡排序实现的java语言编写的关于二维数组的排序,实现了行、列的排序输出。

    c语言二维数组冒泡排序

    `bubbleSort`函数接受一个二维数组和行数作为参数,然后对每一行进行冒泡排序。注意,这里我们仅以第一列元素进行比较,因为如果需要按照其他列排序,需要对冒泡排序的逻辑进行相应的调整。 在`main`函数中,我们先...

    二维数组的四种排序(绝对经典)

    二维数组的排序,其中包含冒泡排序、选择排序、插入排序和快速选择排序。

    C++一维数组二维数组写入txt,从txt中读取数据存到一维数组二维数组

    声明二维数组时,需要提供行数和列数,如 `int matrix[3][4]` 创建了一个3行4列的二维数组。 3. **指针**:在C++中,指针是存储内存地址的变量。可以使用指针来动态管理数组,特别是当数组大小在运行时确定时。例如...

    用for循环对二维数组进行逐行排序

    用labview在While循环中实现二维数组的逐行排序,用两个for循环

    多维数组让数组根据某个字段的大小排序

    `,这里的`$arr`就是一个二维数组。 2. **字段**: 在数据库或数组中,字段通常指的是记录中的一个属性或组成部分。例如,在上面的例子中,`'name'` 和 `'norder'` 就是每个子数组中的字段。 #### 二、PHP中多维...

    易语言学习进阶二维数组赋值

    下面是一个简单的易语言二维数组赋值源码示例,它创建一个二维数组并填充1到9的数字: ```易语言 .整数型 数组名[3, 3] .循环(3) .循环(3) 数组名[循环索引1, 循环索引2] = 循环索引1 * 3 + 循环索引2 + 1 ...

Global site tag (gtag.js) - Google Analytics