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);
相关推荐
-
php通过sort()函数给数组排序的方法
本文实例讲述了php通过sort()函数给数组排序的方法.分享给大家供大家参考.具体分析如下: sort()函数用于给数组排序,本函数为数组中的单元赋予新的键名.原有的键名将被删除. 如果成功则返回 TRUE,否则返回 FALSE. $alpha = array ("x", "a", "f", "c"); sort( $alpha ); foreach ( $alpha as $var ) { print "$var
-
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数组排序usort、uksort与sort函数用法
本文实例讲述了php数组排序usort.uksort与sort函数用法.分享给大家供大家参考.具体用法分析如下: 对数组排序:usort() 函数使用用户自定义的函数对数组排序,实例代码如下: 复制代码 代码如下: function cmp($a, $b) //用户自定义回调函数 { if($a==$b) //如果两个参数相等 { return 0; //返回0 } return($a>$b)?-1:1; //如果
-
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专用数组排序类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二维数组排序简单实现方法
本文实例讲述了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数组排序可以用array_multisort方法实现,但是如果是多维数组,并且我们要指定数组中的某个字段进行排序,那么这就需要我们自己写方法实现了.本文分享了一段PHP指定字段的多维数组排序方法的代码,这段代码可实现根据field字段对数组进行排序. 复制代码 代码如下: function sortArrByField(&$array, $field, $desc = false){ $fieldArr = array(); foreach ($array as $k => $
-
PHP数组排序之sort、asort与ksort用法实例
本文实例讲解了PHP数组排序中sort.asort与ksort的用法,供大家参考借鉴之用.具体实例如下所示: <?php $arr = array('d'=>'sdf', 'r'=>'sdf', 'a'=> 'eee'); //sort($arr); // 对数组的值进行重排, 删除之前的键值, 变为索引数组 //asort($arr); // 对数组按照值进行重排,并保持索引关系,索引数组和关联数组均适用 ksort($arr); // 对数组按照键值进行重排,并保持索引关系,索
-
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中二维数组排序,可以使用PHP内置函数uasort() 示例一: 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联 回调函数如下:注意回调函数的返回值是负数或者是false的时候,表示回调函数的第一个参数在前,第二个参数在后排列 $person = array( array('num'=>'001','id'=>6,'name'=>'zhangsan','age'=>21), array('num'=>'001','id'=>7,'name'=>'
-
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二维数组排序的3种方法和自定义函数分享
关于排序一般我们都是通过数据库或者nosql(eg:redis)先排好序然后输出到程序里直接使用,但是有些时候我们需要通过PHP直接来对数组进行排序,而在PHP里存储数据用到最多的就是对象和数组,但处理较多的就是数组,因为有非常丰富的内置函数库(其实对象一定程度上也可以理解为是数组),这些函数库很大程度上可以帮助我们实现某些功能.常用的系统函数有sort.asort.arsort.ksort.krsort等等,这里我主要说下对二维数组的排序,两种方法: 一.用PHP自带array_multiso
-
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
随机推荐
- 对YUI扩展的Gird组件 Part-2
- Android开发之Button事件实现与监听方法总结
- PHP查询数据库中满足条件的记录条数(两种实现方法)
- c#使用htmlagilitypack解析html格式字符串
- 全面了解javascript中的错误处理机制
- 深入理解JS中的substr和substring
- nodejs入门教程二:创建一个简单应用示例
- PHP中FTP相关函数小结
- Django接受前端数据的几种方法总结
- VBS教程:属性-DriveLetter 属性
- jQuery模拟完美实现经典FLASH导航动画效果【附demo源码下载】
- Node.js批量给图片加水印的方法
- js实现文本框中焦点在最后位置
- 关于进程mDNSResponder.exe 总访问网络 附删除方法
- PHP临时文件的安全性分析
- Android操作系统的架构设计分析
- php实现首页自动选择语言转跳
- 基于PHP文件操作的详解
- js中getBoundingClientRect的作用及兼容方案详解
- elasticsearch中term与match的区别讲解