php 多维数组的排序实现代码
发布:smiling 来源: PHP粉丝网 添加日期:2014-07-27 15:02:19 浏览: 评论:0
本文章给大家整一个php 多维数组的排序实现代码,我们在实际编码中将会用到PHP函数array_multisort()来实现这一复杂的排序,有需要了解的朋友可参考.
如数组,代码如下:
- Array
- (
- [0] => Array
- (
- [id] => 1146
- [orderid] => 3
- )
- [1] => Array
- (
- [id] => 1149
- [orderid] => 2
- )
- [2] => Array
- (
- [id] => 170
- [orderid] => 4
- )
- [3] => Array
- (
- [id] => 1121
- [orderid] => 3
- )
- [4] => Array
- (
- [id] => 1120
- [orderid] => 7
- )
- )
这么一个数据,想按orderid来排序,找不到内置的php函数,网上搜索了下,发现如下方法,代码如下:
- $asc_func = create_function('$a,$b','
- $k = "orderid";
- if($a[$k] == $b[$k]) return 0;
- return $a[$k]>$b[$k]?1:-1;
- ');
- usort($arrs,$asc_func);
$arrs是原数组,$k="orderid"是要排序的字段,后来对上面代码进行了升级,代码如下:
- function sysSortArray($ArrayData,$KeyName1,$SortOrder1 = "SORT_ASC",$SortType1 = "SORT_REGULAR")
- {
- if(!is_array($ArrayData))
- {
- return $ArrayData;
- }
- // Get args number.
- $ArgCount = func_num_args();
- // Get keys to sort by and put them to SortRule array.
- for($I = 1;$I < $ArgCount;$I ++)
- {
- $Arg = func_get_arg($I);
- if(!eregi("SORT",$Arg))
- {
- $KeyNameList[] = $Arg;
- $SortRule[] = '$'.$Arg;
- }
- else
- {
- $SortRule[] = $Arg;
- }
- }
- // Get the values according to the keys and put them to array.
- foreach($ArrayData AS $Key => $Info)
- {
- foreach($KeyNameList AS $KeyName)
- {
- ${$KeyName}[$Key] = $Info[$KeyName];
- }
- }
- // Create the eval string and eval it.
- $EvalString = 'array_multisort('.join(",",$SortRule).',$ArrayData);';
- eval ($EvalString);
- return $ArrayData;
- }
Tags: php 多维数组 数组排序
- 上一篇:php 删除重复数组元素与空元素代码
- 下一篇:PHP合并两个数组简单方法
相关文章
- ·php in_array 语法(2013-11-12)
- ·PHP中数组定义的几种方法(2013-11-13)
- ·php session 预定义数组(2013-11-13)
- ·php 读取多维数组方法(2013-11-28)
- ·php 数组之删除空数组程序(2013-11-30)
- ·php删除数组中的空值或指定值操作(2013-11-30)
- ·php对数组元素去重复值(2013-12-03)
- ·php中向数组中插入一元素程序代码(2014-01-03)
- ·php中数组的搜索程序代码(2014-01-06)
- ·php二维数组循环程序代码(2014-01-06)
- ·php数组删除元素各种方法总结(2014-01-06)
- ·php 数组排序各种方法总结(2014-01-06)
- ·PHP数组的高级遍历和操作处理方法(2014-01-07)
- ·PHP获取数组中某元素的位置实例(2014-01-07)
- ·PHP取数组第一个元素与删除数组实例(2014-01-07)
- ·php将数组变量保存到文件(2014-01-08)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)