PHP二维数组如何根据某个字段排序

摘要:
分享下PHP二维数组如何根据某个字段排序的方法。本文记录的要实现的功能类似于MySQL中的ORDERBY,上个项目中有遇到这样的一个需求。要求:从两个不同的表中获取各自的4条数据,然后整合成一个数组,再根据数据的创建时间降序排序取前4条。这个要求就不是ORDERBY能解决的问题了。因此翻看PHP手册查找到了如下方法,做此笔记。php/***二维数组根据某个字段排序*功能:按照用户的年龄倒序排序*@authorruxing.li*@editwww.jbxue.com*/header;$arrUsers=array;$sort=array;$arrSort=array();foreach{foreach{$arrSort[$key][$uniqid]=$value;}}if{array_multisort;}var_dump;/*输出结果:array0=˃array'id'=˃int5'name'=˃string'黄七''age'=˃int201=˃array'id'=˃int2'name'=˃string'李四''age'=˃int232=˃array'id'=˃int1'name'=˃string'张三''age'=˃int253=˃array'id'=˃int4'name'=˃string'赵六''age'=˃int314=˃array'id'=˃int3'name'=˃string'王五''age'=˃int40*/

分享下PHP二维数组如何根据某个字段排序的方法。

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

本文记录的要实现的功能类似于 MySQL 中的 ORDER BY,上个项目中有遇到这样的一个需求。

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

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

代码:

<?php 
/** 
* 二维数组根据某个字段排序 
* 功能:按照用户的年龄倒序排序 
* @author ruxing.li
* @edit www.jbxue.com
*/ 
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二维数组如何根据某个字段排序》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SpringBoot Controller接收参数的几种常用方式怎样更改wordpress登陆 URL防止恶意注册下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

PHP获取今天、昨天、明天的日期

<?php echo "今天:".date("Y-m-d")."<br>"; echo "昨天:".date("Y-m-d",strtotime("-1 day")), "<br>"; echo "明天:".date("Y-m-d",strtotime("+1 day")). "<br>"; echo "一周...

PHP分页完美参考

转自http://www.knowsky.com/3187.html 1、前言 分页显示是一种非常常见的浏览和显示大量数据 的方法,属于web编程中最常处理的事件之一。对于web编程的老手来说,编写这种代码实在是和呼吸一样自然,但是对于初学者来说,常常对这个问题摸不着 头绪,因此特地撰写此文对这个问题进行详细的讲解,力求让看完这篇文章的朋友在看完以后对于分...

CentOS7为php7.2安装php-redis扩展(redis环境搭建二)

安装前检查 安装前查看phpinfo()输出的版本与php -v 的版本是否一致,如果不一致安装成功后,输出phpinfo和php -v 都会找不到redis扩展,本人在此踩过坑 解决php -v查看到版本于phpinfo()打印的版本不一致问题可参考我的另一篇博客:https://www.cnblogs.com/clubs/p/13377676.html...

PHP 微信机器人 Vbot 结合 Laravel 基础入门及实例

新来了项目,需要能监听指定微信群的消息并进行转发。基于 PHP 7 的 web 微信机器人 Vbot 可以满足需求。Vbot 本质上就是实现了登录网页版微信来进行自动回复、群管理等等操作。 github 地址:https://github.com/hanson/vbot,官网地址:http://create.hanc.cc/vbot/。 安装 环境要求:...

PHP错误处理函数set_error_handler()的用法

定义和用法 set_error_handler() 函数设置用户自定义的错误处理函数。 该函数用于创建运行时期间的用户自己的错误处理方法。 该函数会返回旧的错误处理程序,若失败,则返回 null。 语法 set_error_handler(error_function,error_types)   参数 描述 error_function 必需。规...

WordPress in Windows And Uncaught Error: Call to undefined function mysql_connect()

下载 WordPress  https://cn.wordpress.org/download/#download-install  直接解压出来  打开 readme.html 有简单指引。  浏览器打开 wp-admin/install.php ,指的是通过 web 服务器 打开。浏览器直接打开是源代码。 web 浏览器本身也不支持 .php ,本次...