php实例分享之二维数组排序

PHP一维数组的排序可以用sort(),asort(),arsort()等函数;

PHP二维数组的排序需要自定义。

以下函数是对一个给定的二维数组按照指定的键值进行排序,先看函数定义:

代码如下:

function array_sort($arr,$keys,$type='asc'){
 $keysvalue = $new_array = array();
 foreach ($arr as $k=>$v){
  $keysvalue[$k] = $v[$keys];
 }
 if($type == 'asc'){
  asort($keysvalue);
 }else{
  arsort($keysvalue);
 }
 reset($keysvalue);

$index = 0;//保存下标不变用$k,下标从0开始就用$index;
 foreach ($keysvalue as $k=>$v){

$new_array[$index] = $arr[$k];

$index++;
 }
 return $new_array;
}

它可以对二维数组按照指定的键值进行排序,也可以指定升序或降序排序法(默认为升序),用法示例:

代码如下:

$array = array(
 array('name'=>'Js','date'=>'2014-05-01'),
 array('name'=>'Sh','date'=>'2014-04-30'),
 array('name'=>'Bj','date'=>'2014-05-02')
);

$arrayList = array_sort($array,'date');
print_r($arrayList);

(0)

相关推荐

  • PHP二维数组排序简单实现方法

    本文实例讲述了PHP二维数组排序简单实现方法.分享给大家供大家参考,具体如下: function multi_compare($a, $b) { $val_arr = array( 'gold'=>'asc', 'silver'=>'desc'//还可以增加额外的排序条件 ); foreach($val_arr as $key => $val){ if($a[$key] == $b[$key]){ continue; } return (($val == 'desc')?-1:1) *

  • php插入排序法实现数组排序实例

    本文实例讲述了php插入排序法实现数组排序的方法.分享给大家供大家参考.具体分析如下: 插入排序法的基本思路:同样以案例来说明,还是以$arr = array(2,6,3,9),由大到小排序. 实现原理:假设(并不实际创建)有一个有序数组$arr = array(2),用$arr[1]=6来与它进行比较,如果6>2,由把$arr[0]后移到$arr[1]位置,而6插入到$arr[0]位置.接着,$arr[2]=3与$arr[1]=2比较,3>2,则$arr[1]=2继续后移到$arr[2]位置

  • php二维数组排序方法(array_multisort usort)

    例如像下面的数组: 复制代码 代码如下: $users = array(    array('name' => 'tom', 'age' => 20)    , array('name' => 'anny', 'age' => 18)    , array('name' => 'jack', 'age' => 22)); 希望能按照age从小到大进行排序.笔者整理了两个方法出来,分享给大家. 1.使用array_multisort 使用这个方法,会比较麻烦些,要将age

  • php选择排序法实现数组排序实例分析

    本文实例分析了php选择排序法实现数组排序的方法.分享给大家供大家参考.具体分析如下: 选择排序法的基本思路:直接用案例来说明吧,比如有一个数组$arr = array(2,6,3,9),从大到小排序. 第一次大循环:它首先假设$arr[0]为最大值,然后分别跟$arr[1]~$arr[3]进行比较,如果比较它大,则进行交换,过程是这样(2,6,3,9)---2和6比 --->(6,2,3,9)---6和3比--->(6,2,3,9)---6和9比--->(9,2,3,6).注意,这里下

  • PHP实现指定字段的多维数组排序函数分享

    PHP数组排序可以用array_multisort方法实现,但是如果是多维数组,并且我们要指定数组中的某个字段进行排序,那么这就需要我们自己写方法实现了.本文分享了一段PHP指定字段的多维数组排序方法的代码,这段代码可实现根据field字段对数组进行排序. 复制代码 代码如下: function sortArrByField(&$array, $field, $desc = false){   $fieldArr = array();   foreach ($array as $k => $

  • php通过sort()函数给数组排序的方法

    本文实例讲述了php通过sort()函数给数组排序的方法.分享给大家供大家参考.具体分析如下: sort()函数用于给数组排序,本函数为数组中的单元赋予新的键名.原有的键名将被删除. 如果成功则返回 TRUE,否则返回 FALSE. $alpha = array ("x", "a", "f", "c"); sort( $alpha ); foreach ( $alpha as $var ) { print "$var

  • php中array_multisort对多维数组排序的方法

    本文实例讲述了php中array_multisort对多维数组排序的方法.分享给大家供大家参考.具体实现方法如下: function sort_array($array, $keyid, $order='asc', $type='number') { if(is_array($array)) { foreach($array as $val) { $order_arr[] = $val[$keyid]; } $order = ($order == 'asc') ? SORT_ASC: SORT_

  • php中二维数组排序问题方法详解

    PHP中二维数组排序,可以使用PHP内置函数uasort() 示例一: 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联 回调函数如下:注意回调函数的返回值是负数或者是false的时候,表示回调函数的第一个参数在前,第二个参数在后排列 $person = array( array('num'=>'001','id'=>6,'name'=>'zhangsan','age'=>21), array('num'=>'001','id'=>7,'name'=>'

  • php专用数组排序类ArraySortUtil用法实例

    本文实例讲述了php专用数组排序类ArraySortUtil用法.分享给大家供大家参考.具体如下: ** * ArraySortUtil is a array sort utility, you can extends the sorting engine. * * @version 0.1 * @package utility.sort */ class ArraySortUtil { static function uasort($unsort, $fields) { if ( !is_ar

  • 一个PHP二维数组排序的函数分享

    二维数组在PHP开发中经常遇到,但是他的排序就不如一维数组那样用内置函数来的方便了,二维数组的排序需要我们自己写函数处理了,这里UncleToo给大家分享一个PHP二维数组排序的函数: 代码: 复制代码 代码如下: functionarray_sort($arr,$keys,$type='asc'){ $keysvalue= $new_array= array(); foreach($arras$k=>$v){ $keysvalue[$k] = $v[$keys]; } if($type== '

  • php数组排序usort、uksort与sort函数用法

    本文实例讲述了php数组排序usort.uksort与sort函数用法.分享给大家供大家参考.具体用法分析如下: 对数组排序:usort() 函数使用用户自定义的函数对数组排序,实例代码如下: 复制代码 代码如下: function cmp($a, $b)        //用户自定义回调函数 {   if($a==$b)         //如果两个参数相等   {     return 0;         //返回0   }   return($a>$b)?-1:1;       //如果

  • php二维数组排序详解

    有时候为了达到一定目的,需要对二维数组进行排序,现分享一下其实现的方法. 复制代码 代码如下: $arr=array ('1' => array ( 'date' => '2011-08-18', 'num' => 5 ) ,'2' => array ( 'date' => '2011-08-20', 'num' => 3 ) ,'3' => array ( 'date' => '2011-08-17', 'num' => 10 ) )  ; $res

  • PHP二维数组排序的3种方法和自定义函数分享

    关于排序一般我们都是通过数据库或者nosql(eg:redis)先排好序然后输出到程序里直接使用,但是有些时候我们需要通过PHP直接来对数组进行排序,而在PHP里存储数据用到最多的就是对象和数组,但处理较多的就是数组,因为有非常丰富的内置函数库(其实对象一定程度上也可以理解为是数组),这些函数库很大程度上可以帮助我们实现某些功能.常用的系统函数有sort.asort.arsort.ksort.krsort等等,这里我主要说下对二维数组的排序,两种方法: 一.用PHP自带array_multiso

  • PHP数组排序之sort、asort与ksort用法实例

    本文实例讲解了PHP数组排序中sort.asort与ksort的用法,供大家参考借鉴之用.具体实例如下所示: <?php $arr = array('d'=>'sdf', 'r'=>'sdf', 'a'=> 'eee'); //sort($arr); // 对数组的值进行重排, 删除之前的键值, 变为索引数组 //asort($arr); // 对数组按照值进行重排,并保持索引关系,索引数组和关联数组均适用 ksort($arr); // 对数组按照键值进行重排,并保持索引关系,索

随机推荐