php二维数组按照某一个字段排序!

技术分享 2018年09月10日 阅读 235 我也庸俗

如果正常你在项目中多表联查的话肯定会被技术主管或者DBA他们说的,大多的慢查询都会来自于这里,所以一般公司都会基于内存来运行项目,但是缓存以及数据缓存也是有限的,所以在代码上我们需要去优化。这里就出现了组装数据(谨记:在查询大数据量的数据时,务必不要使用foreach查询)。
但是往往我们组装完数据时需要排序的,因此这里就是讲解二维数组的排序,

//PHP经常使用的几种排序函数
sort() 函数用于对数组单元从低到高进行排序。
rsort() 函数用于对数组单元从高到低进行排序。
asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。
ksort() 函数用于对数组单元按照键名从低到高进行排序。
krsort() 函数用于对数组单元按照键名从高到低进行排序。

基础不好的小伙伴可要牢记住这些基础函数,基础不扎实做什么都是心有余力而不足,注重基础才能更好的延伸其他方面技术。</p>n<p>二维数组的排序并不是经常用,用的少。当数据很多需要解析,各种变化的时候就需要用到更深入的去排序,例如二维排序(含有键值这种),当然网上很多中排序方法,归根结底是效率好又实用,对吧!下面也是对二维数组进行简单的排序,这里离不开php自身函数的使用array_multisort()具体使用方法:array_multisort()排序

<?php
    $users = [
            [’id’=>1,’name’ => ’zhangsan’, ’age’ => 12], 
            [’id’=>2,’name’ => ’lisi’,   ’age’ => 16], 
            [’id’=>3,’name’ => ’wanger’,  ’age’ => 18]
    ];
    /**
      *二维数组根据字段进行排序
      *@params array  $array 需要排序的数组
      *@params string $field 排序的字段
      *@params string $sort 排序顺序标志 SORT_DESC 降序;SORT_ASC 升序
     */
    public function twoArraySort($array,$field,$sort = ’SORT_DESC’)
    {
        $boxArray = [];
        foreach ($array as $key => $value) 
        {
            foreach ($value as $k => $v) 
            {
                $boxArray[$k][$key] = $v;
            }
        }
        array_multisort($boxArray[$field], constant($sort), $array);
        return $array;
    }

希望大家可以在此基础上换一种方法来使用,熟悉使用这些基本的函数。

我也庸俗 我也庸俗 开发工程师@有赞科技公司

写了 159279 字,被 1 人关注,共写了 71 篇笔记

孤独了忙碌的人
推荐文章:
  • 大数据领域Flink 与 Spark之间的区别?

    学而不思则罔 思而不学则殆,2020年砥砺前行!前言大家都知道已经2020年了,也到了新的一年。作为一个主营电商的公司,年底都会很忙。所以最近的更新进度也停滞不前,本来准备大侃PHP设计模式的,但是因...

    豆浆大叔 16天前 3 吐槽 55 围观 技术分享
  • php如何实现钩子与实践案例

    前言学而不思则罔,思而不学则殆。30则而立,头顶正则脱光!昨天晚上,突然想起了PHP中的钩子如何使用?说实话,像dz,wordpress,TP,CI框架都已经集成了Hook钩子,尽管我不怎么使用框架以...

    豆浆大叔 27天前 0 吐槽 41 围观 技术分享
  • Linux无法显示ip地址的解决办法

    今天想趁着有时间,用虚拟机调试一下lua脚本和其他的功能,结果启动虚拟机使用xshell连接不上,然后使用终端查看IP地址无法查看到,记录一下排查错误流程。查看IP地址使用ip addr 或者 ifc...

    豆浆大叔 1个月前 0 吐槽 87 围观 技术分享
  • 高并发性能指标QPS,TPS,RT,并发数,吞吐量是指什么?

    QPS,每秒查询QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。互联网中,作为域名系...

    豆浆大叔 1个月前 0 吐槽 163 围观 技术分享
  • 分享一些PHP常用的小算法

    下面分享一些最常见的算法,用PHP如何实现,拓展下知识面。冒泡排序function bubble_sort($arr) { $n=count($arr); for($i=0;$i<$n-1;$...

    我也庸俗 2个月前 0 吐槽 84 围观 技术分享
表情
  • [:821l1001:]
  • [:821l1002:]
  • [:821l1003:]
  • [:821l1004:]
  • [:821l1005:]
  • [:821l1006:]
  • [:821l1007:]
  • [:821l1008:]
  • [:821l1009:]
  • [:821l1010:]
  • [:821l1011:]
  • [:821l1012:]
  • [:821l1013:]
  • [:821l1014:]
  • [:821l1015:]
  • [:821l1016:]
  • [:821l1017:]
  • [:821l1018:]
  • [:821l1019:]
  • [:821l1020:]
  • [:821l1021:]
  • [:821l1022:]
  • [:821l1023:]
  • [:821l1024:]
  • [:821l1025:]
  • [:821l1026:]
  • [:821l1027:]
  • [:821l1028:]
  • [:821l1029:]
  • [:821l1030:]
  • [:821l1031:]
  • [:821l1032:]
  • [:821l1033:]
  • [:821l1034:]
  • [:821l1035:]
  • [:821l1036:]
  • [:821l1037:]
  • [:821l1038:]
  • [:821l1039:]
  • [:821l1040:]
  • [:821l1041:]
  • [:821l1042:]
  • [:821l1043:]
  • [:821l1044:]
  • [:821l1045:]
  • [:821l1046:]
  • [:821l1047:]
  • [:821l1048:]
  • [:821l1049:]
  • [:anger:]
  • [:applause:]
  • [:awkward:]
  • [:brokenheart:]
  • [:clown:]
  • [:confused:]
  • [:decline:]
  • [:diggingmouth:]
  • [:eyebrows:]
  • [:grinning:]
  • [:haha:]
  • [:ill:]
  • [:kiss:]
  • [:lascivious:]
  • [:laugh:]
  • [:love:]
  • [:lovely:]
  • [:rhinorrhea:]
  • [:smile:]
  • [:solid:]
  • [:strong:]
  • [:sweat:]
  • [:tearcollapse:]
  • [:tongue:]
  • [:uncomfortable:]
  • [:weak:]
  • [:worry:]
Tips:支持Markdown语法

0 个评论

抢座沙发~~~~
开发工程师 @ 有赞科技公司

登录

第三方账号登录:
GitHub
微信
微博