Chinaunix首页 | 论坛 | 博客
  • 博客访问: 305270
  • 博文数量: 111
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 707
  • 用 户 组: 普通用户
  • 注册时间: 2013-02-26 11:00
个人简介

小伙向前冲呀,小伙向前冲呀。

文章分类

全部博文(111)

文章存档

2014年(43)

2013年(68)

我的朋友

分类: PHP

2014-06-12 21:57:12

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

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

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

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

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

代码:

复制代码
php /** 
* 二维数组根据某个字段排序 
* 功能:按照用户的年龄倒序排序 
* @author ruxing.li
* @edit  */ 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 */
阅读(1444) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~