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

2015-01-24信息快讯网

从两个不同的表中获取各自的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 

*/ 
Thinkphp将二维数组变为标签适用的一维数组方法总结
ThinkPHP模板中数组循环实例
PHP与MYSQL中UTF8 中文排序示例代码
PHP与MYSQL中UTF8编码的中文排序实例
PHP清除数组中所有字符串两端空格的方法
php实现扫描二维码根据浏览器类型访问不同下载地址
PHP获取mysql数据表的字段名称和详细信息的方法
php实现根据url自动生成缩略图的方法
php实现根据字符串生成对应数组的方法
php数组中删除元素之重新索引的方法
Yii框架中 find findAll 查找出制定的字段的方法对比
PHP数组排序之sort、asort与ksort用法实例
php实现的常见排序算法汇总
Yii使用find findAll查找出指定字段的实现方法
ThinkPHP查询返回简单字段数组的方法
destoon实现VIP排名一直在前面排序的方法
php中单个数据库字段多列显示(单字段分页、横向输出)
PHP实现根据设备类型自动跳转相应页面的方法
CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能
PHP 如何获取二维数组中某个key的集合
php 批量添加多行文本框textarea一行一个
php数组中包含中文的排序方法
PHP中数组的分组排序实例
将二维数组转为一维数组的2种方法
php实例分享之二维数组排序
php通过数组实现多条件查询实现方法(字符串分割)
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
php获取mysql字段名称和其它信息的例子
不使用php api函数实现数组的交换排序示例
php根据年月获取季度的方法
根据ip调用新浪api获取城市名并转成拼音
PHP根据IP判断地区名信息的示例代码
php获取字段名示例分享
php根据操作系统转换文件名大小写的方法
php根据isbn书号查询amazon网站上的图书信息的示例
©2014-2024 dbsqp.com