• 用PHP自带函数对二维数组进行排序


            经常会面临这样的需求,虽然有时候我们可以在数据库查询的时候,直接对数据进行排序,但还是无法满足日益复杂的业务需求。

    这里边会用到两个函数

    一个是array_column()函数,这个函数接受三个参数。详情参见这里

    是从二维数组中抽出一个键的值,作为一个新的数组返回。

    另一个是array_multisort()函数,这个函数是一个排序函数,详情参见这里
    它会依照第一个参数数组的排序规则,依照第一个参数数组的值在第三个参数重的位置对第三个参数进行排序。

    听不明白吧?听不明白就对了,还是直接看代码来的实在:


    $orgin = array(
      array(
        'id' => 5698,
        'first_name' => 'Bill',
        'last_name' => 'Gates',
      ),
      array(
        'id' => 4767,
        'first_name' => 'Steve',
        'last_name' => 'Jobs',
      ),
      array(
        'id' => 3809,
        'first_name' => 'Mark',
        'last_name' => 'Zuckerberg',
      )
    );
    
    $idArr = array_column($orgin, 'id');
    array_multisort($idArr,SORT_ASC,$orgin);
    var_dump($orgin);

    这个打印的结果是:

    array (size=3)
      0 => 
        array (size=3)
          'id' => int 3809
          'first_name' => string 'Mark' (length=4)
          'last_name' => string 'Zuckerberg' (length=10)
      1 => 
        array (size=3)
          'id' => int 4767
          'first_name' => string 'Steve' (length=5)
          'last_name' => string 'Jobs' (length=4)
      2 => 
        array (size=3)
          'id' => int 5698
          'first_name' => string 'Bill' (length=4)
          'last_name' => string 'Gates' (length=5)

    这下是不是就明朗的多了?


  • 相关阅读:
    03_线性表
    02_算法与数据结构
    01_python中内置类型的时间复杂度
    00_常见的时间复杂度
    03_docker导出和导入镜像
    09_创建mysql数据库的用户
    14_linux添加主机列表
    13_linux修改主机名
    12_centos7安装好后的网络设置
    00_使用pdb调试python代码
  • 原文地址:https://www.cnblogs.com/haorenergou/p/11665054.html
Copyright © 2020-2023  润新知