PHP二维数组如何根据某个字段排序
分享下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二维数组如何根据某个字段排序的更多相关文章
- php 将一个或多个二维数组组合成一个二维数组并根据某个字段排序排序
最近再写项目的时候,碰到一个问题:如何将一个或多个二维数组组合成一个二维数组并根据某个字段排序排序:实在是想不到哪个php库中有哪个函数能实现,只能自己写一个了,将代码写出来后,发现自己的代码繁琐,并 ...
- php二维数组的某一字段 做分组统计
$country=array_column($order,'country');$countryGP=array_count_values($country);对二维数组的某一字段 做分组统计
- php对二维数组进行相关操作(排序、转换、去空白等)
php对二维数组进行相关操作(排序.转换.去空白等) 投稿:lijiao 字体:[增加 减小] 类型:转载 时间:2015-11-04 这篇文章主要介绍了php对二维数组进行相关操作,包括php对 ...
- 一个有用的排序函数,array_multisort(),下面的一个用法是根据二维数组里的一个字段值的大小,对该二维数组进行重新排序
从二维数组$cashes中取出一列 'store_id'(二维数组中的每个一维数组都有的字段),按照这个的大小排序,对二维数组$caches里面的一维数组进行重新排序 实际应用如下 想让相同部门的排在 ...
- 二维数组按某个键值排序 FOR PHP
$arr=[ array( 'name'=>'小坏龙', 'age'=>28 ), array( 'name'=>'小坏龙2', 'age'=>14 ), array( 'na ...
- PHP二维数组按某个键值排序
$data=Array( [0] => Array ( [id] => 2 [user_id] => 14 ...
- php多维数组的指定单个字段排序
多维数组如何根据指定键值?比如现在有数组结构如下: ,,,,,'subject' => 'math'), 1 => array('name' => '3班','avgScore'=& ...
- merger_by_one 处理二维数组,根据里面某字段合并, 里面有的保留,有的求和~~
public function tt(){ $param = array( array ( 'hykno' => '2222222-CB', 'tcdk_fid' => '458B6D70 ...
- PHP:根据二维数组中的某个字段进行排序
首先了解下以下两个函数: 1.array_column() 返回输入数组中某个单一列的值. 2.array_multisort() 函数返回排序数组.您可以输入一个或多个数组.函数先对第一个数组进行排 ...
随机推荐
- Navicat安装激活
有条件的同学麻烦不要使用下面的激活步骤,仅供个人学习使用 ...... ...... ...... ...... 一.去官网下载最新Navicat软件https://www.navicat.com.c ...
- C#.NET常见问题(FAQ)-get set属性有什么意义
使用get,set可以让类定义的更加规范,因为正常情况下,如果我们写一个自定义类,他的属性要么是public,要么是private,但是如果public的属性又要做限制,比如人年龄不允许负数,也不允许 ...
- VS2015不能修改安装路径问题
Python作为一门强大.开源的脚本语言也被ArcGIS所使用,但其开发编程环境(IDE)实现是太不方便了,VS2015终于集成了python开发,所以,也想对python多作一些了解和使用. 但今天 ...
- MySQL Cluster线上管理节点配置文件-数据节点32G内存
网上的朋友提供的,仅供参考. [NDBD DEFAULT] NoOfReplicas= 2 DataMemory=20G IndexMemory=5G MaxNoOfConcurrentTransac ...
- JVM中类的卸载机制
类的生命周期 当Sample类被载入.连接和初始化后,它的生命周期就開始了. 当代表Sample类的Class对象不再被引用,即不可触及时,Class对象就会结束生命周期.Sample类在方法区内的数 ...
- eclipse 配置多个jdk(jre)
eclipse 配置多个jdk(jre) CreateTime--2018年4月24日08:57:40 Author:Marydon 1.打开设置窗口 输入jre 2.点击"Add... ...
- pip简单配置
pip安装Python模块的工具,等价于Redhat中的yum! 01.下载 百度云盘:http://pan.baidu.com/s/1eRHGBfk ###相关的 Linux ...
- Java使用JDBC连接随意类型数据库(mysql oracle。。)
package cn.liz.test; import java.io.InputStream; import java.sql.Connection; import java.sql.Driver; ...
- mysql中内存的使用与分配
mysql的内存分配,是调优的重中之重,所以必须搞清楚内存是怎么分配的 mysql> show global variables like '%buffer%'; +-------------- ...
- springmvc+spring框架
jar包 com.springsource.javax.validation-1.0.0.GA.jar com.springsource.org.aopalliance-1.0.0.jar com.s ...