PHP 二维数组根据某个字段排序的具体实现

 更新时间:2014年06月03日 17:10:32   作者:  
从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条
本文记录的要实现的功能类似于 MySQL 中的 ORDER BY,上个项目中有遇到这样的一个需求。

要求:从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条。

遇到这个要求的时候就不是 ORDER BY 能解决的问题了。因此翻看 PHP 手册查找到了如下方法,做此笔记。

废话少说,奉上代码,清单如下:
复制代码 代码如下:

<?php
/**
* 二维数组根据某个字段排序
* 功能:按照用户的年龄倒序排序
* @author ruxing.li
*/
header('Content-Type:text/html;Charset=utf-8');
$arrUsers = array(
array(
'id' => 1,
'name' => '张三',
'age' => 25,
),
array(
'id' => 2,
'name' => '李四',
'age' => 23,
),
array(
'id' => 3,
'name' => '王五',
'age' => 40,
),
array(
'id' => 4,
'name' => '赵六',
'age' => 31,
),
array(
'id' => 5,
'name' => '黄七',
'age' => 20,
),
);


$sort = array(
'direction' => 'SORT_DESC', //排序顺序标志 SORT_DESC 降序;SORT_ASC 升序
'field' => 'age', //排序字段
);
$arrSort = array();
foreach($arrUsers AS $uniqid => $row){
foreach($row AS $key=>$value){
$arrSort[$key][$uniqid] = $value;
}
}
if($sort['direction']){
array_multisort($arrSort[$sort['field']], constant($sort['direction']), $arrUsers);
}

var_dump($arrUsers);

/*
输出结果:

array (size=5)
0 =>
array (size=3)
'id' => int 5
'name' => string '黄七' (length=6)
'age' => int 20
1 =>
array (size=3)
'id' => int 2
'name' => string '李四' (length=6)
'age' => int 23
2 =>
array (size=3)
'id' => int 1
'name' => string '张三' (length=6)
'age' => int 25
3 =>
array (size=3)
'id' => int 4
'name' => string '赵六' (length=6)
'age' => int 31
4 =>
array (size=3)
'id' => int 3
'name' => string '王五' (length=6)
'age' => int 40

*/

相关文章

  • php中sprintf与printf函数用法区别解析

    php中sprintf与printf函数用法区别解析

    这篇文章主要介绍了php中sprintf与printf函数用法区别解析,需要的朋友可以参考下
    2014-02-02
  • 详解JIT编译器在PHP8中的工作原理

    详解JIT编译器在PHP8中的工作原理

    JIT是Just-In-Time 编译的缩写,是一种在运行时将高级源代码编译成机器码的技术,JIT是PHP 8.0中最重要的新功能之一,JIT 编译器的核心思想是将 PHP 源代码分为热代码路径和冷代码路径,本文给大家详细介绍了JIT编译器在PHP8中的工作原理,需要的朋友可以参考下
    2023-10-10
  • PHP设计模式之原型模式示例详解

    PHP设计模式之原型模式示例详解

    这篇文章主要给大家介绍了关于PHP设计模式之原型模式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • php park、unpark、ord 函数使用方法(二进制流接口应用实例)

    php park、unpark、ord 函数使用方法(二进制流接口应用实例)

    在工作中,我也逐渐了解到park,unpark,ord对于二进制字节处理的强大。 下面我逐一介绍它们。
    2010-10-10
  • php异步:在php中使用fsockopen curl实现类似异步处理的功能方法

    php异步:在php中使用fsockopen curl实现类似异步处理的功能方法

    下面小编就为大家带来一篇php异步:在php中使用fsockopen curl实现类似异步处理的功能方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • PHP session会话的安全性分析

    PHP session会话的安全性分析

    会话的用途常常是帮助用户在Web应用程序的各个部分之间跳转,(这句话说的比较不全面,其实主要是为了能共享数据。)
    2011-09-09
  • PHP也能干大事之PHP中的编码解码详解

    PHP也能干大事之PHP中的编码解码详解

    这篇文章主要介绍了PHP也能干大事之PHP中的编码解码详解,本文讲解了ASCII编解码、URL编解码、Base64编解码、HTML实体编解码、二进制、八进制、十进制、十六进制相互转换等内容,需要的朋友可以参考下
    2015-04-04
  • 使用Zookeeper分布式部署PHP应用程序

    使用Zookeeper分布式部署PHP应用程序

    今天小编就为大家分享一篇关于使用Zookeeper分布式部署PHP应用程序,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • PHP gbk环境下json_dencode传送来的汉字

    PHP gbk环境下json_dencode传送来的汉字

    在做一个小项目的时候用得gbk,发现json_encode传过来的汉子不对。搜索出结果。。留下印子不忘记。。欢迎指正
    2012-11-11
  • php+ajax实现无刷新分页

    php+ajax实现无刷新分页

    这篇文章主要介绍了php+ajax实现无刷新分页的方法,详细讲述了Ajax文件的实现及PHP调用方法,需要的朋友可以参考下
    2015-11-11

最新评论