Jtti广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php之二维数组排序问题
  • 898
分享到

php之二维数组排序问题

php二维数组排序php二维数组php排序 2023-03-23 11:03:23 898人浏览 独家记忆
摘要

目录PHP二维数组排序php二维数组排序算法函数总结php二维数组排序 测试数据         $arr = [             'a' => ['a' =>

php二维数组排序

测试数据

        $arr = [
            'a' => ['a' => 11, 'b' => 12, 'c' => 13],
            'b' => ['a' => 10, 'b' => 13, 'c' => 12],
            'c' => ['a' => 12, 'b' => 11, 'c' => 10],
        ];

通过usort排序

        # usort 排序会导致二维数组的key改变(key a,b,c 变成 0,1,2 这种)
        # 如果不在意key的改变可以用这种
        # $arr 是引用
        usort($arr, function ($current, $next) {
            # 正序排
            return $current['a'] > $next['a'];
        });      

通过array_multisort排序

        $arr = [
            'a' => ['a' => 11, 'b' => 12, 'c' => 13],
            'b' => ['a' => 10, 'b' => 13, 'c' => 12],
            'c' => ['a' => 12, 'b' => 11, 'c' => 10],
        ];
        # 以二维数组的a作为比较值
        $key = array_column(array_values($arr), 'a');
        # 第一个参数需要提供二维数组排序依据
        # 第二个排序方式 SORT_ASC:正序 SORT_DESC:倒序
        # 第三个参数 要排序的二维数组,改动直接操作在该数组上
        # 排序能保证key不改变
        array_multisort($key, SORT_ASC, $arr);

php二维数组排序算法函数

<?php
// 二维数组排序算法函数,能够具有通用性,可以调用php内置函数。
function array_sort(&$arr, $order = []){
    $result = [];
    if (empty($arr)) {
        return $result;
    }
 
    uasort($arr, function ($a, $b) use ($order) {
        foreach ($order as $key => $sort) {
            array_shift($order);
            if ($a[$key] == $b[$key]) {
                continue;
            }
            if ($sort === 'DESC') {
                return ($a[$key] > $b[$key]) ? -1 : 1;
            } else {
                return ($a[$key] > $b[$key]) ? 1 : -1;
            }
        }
        return 0;
    });
 
    foreach ($arr as $value) {
        $result[] = $value;
    }
 
    return $arr = $result;
}
 
// 测试
$ps = array(
    array('id' => 1, 'name' => 'zhanGCan', 'age' => 13),
    array('id' => 2, 'name' => 'lisi', 'age' => 16),
    array('id' => 3, 'name' => 'wangwu', 'age' => 17),
    array('id' => 4, 'name' => 'wangwu', 'age' => 18),
);
// $ret = array_sort($person, ['name' => 'ASC']);
$ret = array_sort($ps, ['name'=>'ASC', 'age'=>'DESC']);
 
print_r($ret);

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: php之二维数组排序问题

本文链接: https://www.lsjlt.com/news/200997.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • php之二维数组排序问题
    目录php二维数组排序php二维数组排序算法函数总结php二维数组排序 测试数据         $arr = [             'a' => ['a' => ...
    898
    2023-05-30
    php二维数组排序 php二维数组 php排序
  • php如何对二维数组排序
    PHP作为一种常用的Web编程语言,在不同的应用场景下,对数组的处理是不可避免的。而对于数组排序,也是开发时经常面对的一个问题。本文将介绍如何对二维数组进行排序。一、二维数组排序概述在PHP中,二维数组是由多个一维数组链接而成的复合数组,也...
    321
    2023-05-30
  • php如何实现二维数组排序
    在php中,可以使用array_multisort()函数实现二维数组排序。该函数可以对多个数组或多维数组进行排序,语法“array_multisort(二维数组,排列顺序,排序类型)”;当第二个参数省略或设置为“SORT_ASC”则升序排...
    588
    2023-05-30
    php php数组
  • Java基础语法之二维数组详解
    目录一、二维数组二、二维数组的声明与初始化2.1 声明2.2 初始化2.2.1 静态初始化2.2.2 动态初始化三、二维数组的遍历四、二维数组的内存图分析五、数组操作的常见异常六、总...
    421
    2023-05-30
    Java二维数组 java数组
  • php移除二维数组
    在 PHP 中,二维数组是指包含多个数组的数组。有时候在使用二维数组时,需要将其中某个子数组移除。本文将讲解如何在 PHP 中移除二维数组。使用 unset() 函数PHP 中的 unset() 函数可以用来销毁一个变量,包括数组元素。我们...
    265
    2023-05-30
  • php 二维数组 删除
    在PHP中,二维数组经常被用来存储表格数据或者以键值对的形式存储相关数据。但是有时候我们需要从二维数组中删除某些数据,因此本文将介绍多种删除二维数组数据的方法。array_splice()函数array_splice()函数可以从数组中删除...
    528
    2023-05-30
  • php 二维数组转换
    在PHP编程中,数组是非常常用的数据结构。二维数组就是其中一种特殊类型的数组,它包含多个普通数组,每一个数组都是一行或者一列,由一组有序的数据组成。而在实际编写代码时,我们可能需要将二维数组进行转换。因此,本文将介绍PHP中二维数组的转换方...
    247
    2023-05-30
  • php 删除二维数组
    在PHP开发中,经常需要对数组进行操作,其中包括删除数组元素。而对于二维数组的删除操作,在实际应用中也非常常见。本文将探讨如何在PHP中删除二维数组中的元素。unset()函数PHP内置的unset()函数是一种删除数组元素的方法。它可以删...
    896
    2023-05-30
  • php 二维数组删除
    在PHP中,删除二维数组通常需要通过使用循环和条件语句来实现。在实际编程中,我们通常会遇到以下两种情况需要删除二维数组:删除指定元素:需要找到要删除的元素所在的子数组,并从该子数组中删除指定元素。删除整个子数组:需要找到包含要删除的子数组的...
    473
    2023-05-30
  • php 二维数组转一维数组
    在 PHP 中,数组是一种非常强大和灵活的数据结构,可以存储多种不同类型的数据。PHP 的数组可以是单维数组、二维数组、多维数组等。在实际开发过程中,我们经常需要将二维数组转换为一维数组,以便更方便地遍历和处理数据。本文将介绍 PHP 中如...
    629
    2023-05-30
  • php 一维数组转二维数组
    在 PHP 中,有时候会遇到将一个一维数组转换成二维数组的需求。例如,我们可能需要处理一个包含很多数据的一维数组,但是这些数据需要按照某种规则分组,这时候就需要将一维数组转换成二维数组。接下来我们来介绍一下如何实现一维数组转二维数组的方法。...
    253
    2023-05-30
  • 一维数组转二维数组 php
    在 PHP 中,处理数组是极其常见的需求之一。有时候我们需要将一维数组转换成二维数组,这个过程可能涉及到多种数据操作,需要我们灵活运用数组函数来实现转换。本文将介绍一些在 PHP 中实现一维数组转换二维数组的方法和技巧。一、将一维数组转换成...
    110
    2023-05-30
  • php二维数组怎么求积
    求积步骤:1、定义一个变量并赋值1,语法“$cj=1;”;2、用foreach循环遍历外层数组元素,语法“foreach($arr as $v){//循环体代码}”;3、循环体中,用is_array()、array_product()和“*...
    855
    2023-05-30
    php数组 php
  • php如何截取二维数组
    PHP是一种非常常用的脚本语言,在日常开发中,我们可能经常需要截取二维数组。使用PHP操作二维数组非常方便,下面介绍几种截取二维数组的方式。一、使用array_slice()函数array_slice()函数是PHP自带的函数,可以用来截取...
    550
    2023-05-30
  • php二维数组怎么取值
    在PHP编程中使用数组非常常见,其中二维数组更是不可避免的。二维数组是指数组中每个元素都是一个数组,这些数组元素是通过一个共同的键(key)来组织的。在使用二维数组时,取值的方法稍有不同。下面我们就来看看如何在PHP中取值二维数组。一、什么...
    345
    2023-05-30
  • php二维数组怎么升序
    深入学习PHP开发,有很多常见的问题需要解决。类似于将二维数组按升序排列这样的基本任务。在本文中,我们将探讨如何在PHP中将二维数组按升序排列。二维数组是PHP数组的一种类型,它包含一组有序的值。与一维数组相比,它有更多的维度,可以嵌套在其...
    865
    2023-05-30
  • php如何替换二维数组
    在PHP中,数组是一种非常常见和有用的数据结构。二维数组则是在一维数组的基础上,增加了一个维度,可以更加灵活地存储和操作数据。不过,在实际应用中,我们可能需要对二维数组进行替换操作,比如替换数组中的某个值,并且这个替换操作需要在多个子数组中...
    406
    2023-05-30
  • php 是否在二维数组
    随着互联网和Web技术的快速发展,PHP语言已经成为了许多Web开发工程师不可缺少的技能之一。在PHP语言中,数组是一个非常重要和常用的数据类型,而二维数组更是使用频率较高的一种。那么,在PHP中如何判断某个元素是否在二维数组中呢?本文将从...
    431
    2023-05-30
  • php 怎么定义二维数组
    在 PHP 中,定义一个二维数组其实就是定义一个数组,而数组中的每个元素还是一个数组。下面让我们来看一下 PHP 中如何定义一个二维数组。定义二维数组的基本格式:$array = array( array(value1, value...
    140
    2023-05-30
  • php二维数组转xml
    PHP是一种流行的编程语言,它在Web开发中广泛使用。在许多情况下,我们需要将数据从一个格式转换为另一个格式。在本文中,我们将探讨如何将PHP中的二维数组转换为XML格式。首先,让我们看一下什么是二维数组。二维数组是指一个数组,其中包含多个...
    518
    2023-05-30
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作