小左闲谈

PHP对二维数组按照某个字段的值进行排序的两种方法

当前位置:首页 » 笔记 » 本页
In 笔记  @2017-01-11

用PHP对二维数组进行排序:
第一种方法:遍历生成新数组用array_multisort()方法排序;

  1. /**
  2.  * 二维数组的排序
  3.  * @param  array  $arr       需要排序的二维数组
  4.  * @param  string $field     以这个数组的值来排序
  5.  * @param  string $direction 排序规则  SORT_ASC 升序  SORT_DESC降序
  6.  * @return array            排序后的数组
  7.  * @author http://blog.m1910.com/
  8.  */
  9. function  sort_array($arr, $field, $direction = 'SORT_DESC'){ 
  10.     $arrSort = array();  
  11.     foreach($arr AS $uniqid => $row){  
  12.         foreach($row AS $key=>$value){  
  13.             $arrSort[$key][$uniqid] = $value;
  14.         }
  15.     }
  16.     array_multisort($arrSort[$field], constant($direction), $arr);
  17.     return $arr;
  18. }

第二种方法:利用usort()自定义排序进行排序

/**
 * 二维数组的排序
 * @param  array  $arr       需要排序的二维数组
 * @param  string $field     以这个数组的值来排序
 * @return array            排序后的数组
 * @author http://blog.m1910.com/
 * @备注:默认升序,需要降序把$a和$b调换位置就好了
 */
function  sort_array($arr, $field){ 
    usort( $arr, function( $a, $b ) {
        return ($a[$field] - $b[$field]);
	});
    return $arr;
}
若无特殊声明,表示本文由:小左闲谈.原创
链接地址: http://blog.m1910.com/archives/1591.html
版权所有 © 转载时请以链接形式注明作者和原始出处!
标签: , , ,   评论: 8枚  被围观 1,250 次

发表一下你的看法

8 评论 在 "PHP对二维数组按照某个字段的值进行排序的两种方法"

avatar
排序:   最新 | 最旧
themebetter

边学习边总结,很不错。

Feeey个人博客

大王叫我来巡山,我把博客转一转。(*^__^*) 嘻嘻……

老金@金博客

现在不折腾了,有问题打电话

蜘蛛盟

php的函数还是很好用的 有时候写了半天方法 发现已经有一个函数 就能解决了

文栋说自媒体

这个不错,用的时候直接过来拿,哈哈

wpDiscuz