PHP排序之二维数组的按照字母排序实现代码


Posted in PHP onAugust 13, 2011
<?php 
/** 
* Sort an two-dimension array by some level two items use array_multisort() function. 
* 
* sysSortArray($Array,"Key1","SORT_ASC","SORT_RETULAR","Key2"……) 
* @author Chunsheng Wang <wwccss@263.net> 
* @param array $ArrayData the array to sort. 
* @param string $KeyName1 the first item to sort by. 
* @param string $SortOrder1 the order to sort by("SORT_ASC"|"SORT_DESC") 
* @param string $SortType1 the sort type("SORT_REGULAR"|"SORT_NUMERIC"|"SORT_STRING") 
* @return array sorted array. 
*/ 
function sysSortArray($ArrayData,$KeyName1,$SortOrder1 = "SORT_ASC",$SortType1 = "SORT_REGULAR") 
{ 
if(!is_array($ArrayData)) 
{ 
return $ArrayData; 
} 
$ArgCount = func_num_args(); 
for($I = 1;$I < $ArgCount;$I ++) 
{ 
$Arg = func_get_arg($I); 
if(!eregi("SORT",$Arg)) 
{ 
$KeyNameList[] = $Arg; 
$SortRule[] = '$'.$Arg; 
} 
else 
{ 
$SortRule[] = $Arg; 
} 
} 
foreach($ArrayData AS $Key => $Info) 
{ 
foreach($KeyNameList AS $KeyName) 
{ 
${$KeyName}[$Key] = $Info[$KeyName]; 
} 
} 
$EvalString = 'array_multisort('.join(",",$SortRule).',$ArrayData);'; 
eval ($EvalString); 
return $ArrayData; 
} 
//################# 示例 ################# 
$arr = array( 
array( 
'name' => '学习', 
'size' => '1235', 
'type' => 'jpe', 
'time' => '1921-11-13', 
'class' => 'D', 
), 
array( 
'name' => '中国功夫', 
'size' => '153', 
'type' => 'jpe', 
'time' => '2005-11-13', 
'class' => 'J', 
), 
array( 
'name' => '编程', 
'size' => '35', 
'type' => 'gif', 
'time' => '1997-11-13', 
'class' => 'A', 
), 
array( 
'name' => '中国功夫', 
'size' => '65', 
'type' => 'jpe', 
'time' => '1925-02-13', 
'class' => 'D', 
), 
array( 
'name' => '中国功夫', 
'size' => '5', 
'type' => 'icon', 
'time' => '1967-12-13', 
'class' => 'C', 
), 
); 
print_r($arr); 
//注意:按照数字方式排序时 153 比 65 小 
$temp = sysSortArray($arr,"class","SORT_ASC","type","SORT_DESC","size","SORT_ASC","SORT_STRING"); 
echo "<pre>"; 
print_r($temp); 
?>
PHP 相关文章推荐
用PHP实现多级树型菜单
Oct 09 PHP
ionCube 一款类似zend的PHP加密/解密工具
Jul 25 PHP
PHP安全性漫谈
Jun 28 PHP
LotusPhp笔记之:基于ObjectUtil组件的使用分析
May 06 PHP
个人写的PHP验证码生成类分享
Aug 21 PHP
php采集自中央气象台范围覆盖全国的天气预报代码实例
Jan 04 PHP
zen cart实现订单中增加paypal中预留电话的方法
Jul 12 PHP
CI框架实现优化文件上传及多文件上传的方法
Jan 04 PHP
Mac下php 5升级到php 7的步骤详解
Apr 26 PHP
PHP简单获取随机数的常用方法小结
Jun 07 PHP
php命令行写shell实例详解
Jul 19 PHP
Laravel框架集合用法实例浅析
May 14 PHP
php中使用Curl、socket、file_get_contents三种方法POST提交数据
Aug 12 #PHP
PHP简洁函数小结
Aug 12 #PHP
不支持fsockopen但支持culr环境下下ucenter与modoer通讯问题
Aug 12 #PHP
PHP中获取内网用户MAC地址(WINDOWS/linux)的实现代码
Aug 11 #PHP
php 文章调用类代码
Aug 11 #PHP
初学PHP的朋友 经常问的一些问题。不断更新
Aug 11 #PHP
shopex中集成的站长统计功能的代码简单分析
Aug 11 #PHP
You might like
dedecms中显示数字验证码的修改方法
2007/03/21 PHP
PHP 程序员应该使用的10个组件
2009/10/31 PHP
PHP输出一个等腰三角形的方法
2015/05/12 PHP
php版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
2016/10/12 PHP
PHP简单实现二维数组赋值与遍历功能示例
2017/10/19 PHP
网页里控制图片大小的相关代码
2006/06/13 Javascript
基于jQuery的淡入淡出可自动切换的幻灯插件打包下载
2010/09/15 Javascript
Javascript模块化编程(一)AMD规范(规范使用模块)
2013/01/17 Javascript
按Enter键触发事件的jquery方法实现代码
2014/02/17 Javascript
javascript实现的闭包简单实例
2015/07/17 Javascript
Bootstrap每天必学之导航条
2015/11/27 Javascript
jQuery.deferred对象使用详解
2016/03/18 Javascript
js传值后台中文出现乱码的解决方法
2016/06/30 Javascript
jQuery Jsonp跨域模拟搜索引擎
2017/06/17 jQuery
使用Vue开发一个实时性时间转换指令
2018/01/17 Javascript
微信小程序实现吸顶特效
2020/01/08 Javascript
OpenLayer3自定义测量控件MeasureTool
2020/09/28 Javascript
Python内置函数bin() oct()等实现进制转换
2012/12/30 Python
Python内置函数的用法实例教程
2014/09/08 Python
详解Django框架中用户的登录和退出的实现
2015/07/23 Python
python模块之sys模块和序列化模块(实例讲解)
2017/09/13 Python
详解如何用OpenCV + Python 实现人脸识别
2017/10/20 Python
用Python进行简单图像识别(验证码)
2018/01/19 Python
利用python脚本如何简化jar操作命令
2019/02/24 Python
详解python中的hashlib模块的使用
2019/04/22 Python
Python中函数的基本定义与调用及内置函数详解
2019/05/13 Python
Python搭建代理IP池实现接口设置与整体调度
2019/10/27 Python
自我鉴定的范文
2013/10/03 职场文书
房产销售经理职责
2013/12/20 职场文书
活动总结报告格式
2014/05/09 职场文书
竞选纪律委员演讲稿
2014/09/13 职场文书
音乐教育专业自荐信
2014/09/18 职场文书
领导工作表现评语
2015/01/04 职场文书
小学生家长意见
2015/06/03 职场文书
2019同学聚会主持词
2019/05/06 职场文书
详解Java分布式事务的 6 种解决方案
2021/06/26 Java/Android