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 相关文章推荐
PHP4实际应用经验篇(1)
Oct 09 PHP
php cookie 作用范围?不要在当前页面使用你的cookie
Mar 24 PHP
Windows PHP5和Apache的安装与配置
Jun 08 PHP
PHP写杨辉三角实例代码
Jul 17 PHP
ThinkPHP中的三大自动简介
Aug 22 PHP
php获取当月最后一天函数分享
Feb 02 PHP
PHP使用gmdate实现将一个UNIX 时间格式化成GMT文本的方法
Mar 19 PHP
浅谈php错误提示及查错方法
Jul 14 PHP
Symfony2获取web目录绝对路径、相对路径、网址的方法
Nov 14 PHP
php 解决扫描二维码下载跳转问题
Jan 13 PHP
PHP读取、解析eml文件及生成网页的方法示例
Sep 04 PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
Dec 29 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
PHP 地址栏信息的获取代码
2009/01/07 PHP
php获取URL中带#号等特殊符号参数的解决方法
2014/09/02 PHP
php验证身份证号码正确性的函数
2016/07/20 PHP
LNMP部署laravel以及xhprof安装使用教程
2017/09/14 PHP
bcastr2.0 通用的图片浏览器
2006/11/22 Javascript
dojo学习第二天 ajax异步请求之绑定列表
2011/08/29 Javascript
jquery ajaxSubmit 异步提交的简单实现
2014/02/28 Javascript
在jquery中的ajax方法怎样通过JSONP进行远程调用
2014/04/04 Javascript
全面解析Javascript无限添加QQ好友原理
2016/06/15 Javascript
js获取一组日期中最近连续的天数
2017/05/25 Javascript
浅谈Angular路由复用策略
2017/10/04 Javascript
微信小程序获取音频时长与实时获取播放进度问题
2018/08/28 Javascript
angularjs使用div模拟textarea文本框的方法
2018/10/02 Javascript
Vuejs中的watch实例详解(监听者)
2020/01/05 Javascript
Python的Django REST框架中的序列化及请求和返回
2016/04/11 Python
Python XML转Json之XML2Dict的使用方法
2019/01/15 Python
Python面向对象实现一个对象调用另一个对象操作示例
2019/04/08 Python
python字符串切割:str.split()与re.split()的对比分析
2019/07/16 Python
opencv 获取rtsp流媒体视频的实现方法
2019/08/23 Python
python+django+selenium搭建简易自动化测试
2020/08/19 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
2020/11/17 Python
css3的focus-within选择器的使用
2020/05/11 HTML / CSS
CSS3 对过渡(transition)进行调速以及延时
2020/10/21 HTML / CSS
JACK & JONES荷兰官网:男士服装和鞋子
2021/03/07 全球购物
优秀员工年终发言演讲稿
2014/01/01 职场文书
质量月口号
2014/06/20 职场文书
艾滋病宣传标语
2014/06/25 职场文书
软件测试专业推荐信
2014/09/18 职场文书
2014年大学生职业规划书:未来不是梦,只要勇敢冲!
2014/09/22 职场文书
处级领导干部四风问题自我剖析材料
2014/09/29 职场文书
2014年教研员工作总结
2014/12/23 职场文书
房地产公司财务总监岗位职责
2015/04/03 职场文书
2015迎新晚会开场白
2015/05/29 职场文书
海洋天堂观后感
2015/06/05 职场文书
幼儿园小班教师随笔
2015/08/14 职场文书
纯 CSS 自定义多行省略的问题(从原理到实现)
2021/11/11 HTML / CSS