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 相关文章推荐
oracle资料库函式库
Oct 09 PHP
坏狼php学习 计数器实例代码
Jun 15 PHP
php中数字0和空值的区别分析
Jun 05 PHP
跟我学Laravel之配置Laravel
Oct 15 PHP
php计算到指定日期还有多少天的方法
Apr 14 PHP
php结合ajax实现手机发红包的案例
Oct 13 PHP
PHP封装返回Ajax字符串和JSON数组的方法
Feb 17 PHP
php获取数据库中数据的实现方法
Jun 01 PHP
php中输出json对象的值(实现方法)
Mar 07 PHP
php实现生成PDF文件的方法示例【基于FPDF类库】
Jul 21 PHP
PHP hebrev()函数用法讲解
Feb 21 PHP
PHP单文件上传原理及上传函数的封装操作示例
Sep 02 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/08/25 PHP
php学习笔记 数组遍历实现代码
2011/06/09 PHP
PHP模板引擎Smarty的缓存使用总结
2014/04/24 PHP
WordPress中用于获取文章信息以及分类链接的函数用法
2015/12/18 PHP
编写Js代码要注意的几条规则
2010/09/10 Javascript
ajax不执行success回调而是执行了error回调
2012/12/10 Javascript
xmlhttp缓存清除的2种解决方法
2013/12/13 Javascript
JavaScript中输出标签的方法
2014/08/27 Javascript
IE及IE6浏览器中判断JS文件加载成功失败的方法
2015/02/18 Javascript
原生javascript实现addClass,removeClass,hasClass函数
2016/02/25 Javascript
修改js confirm alert 提示框文字的简单实例
2016/06/10 Javascript
KnockoutJS 3.X API 第四章之click绑定
2016/10/10 Javascript
Javascript中数组去重与拍平的方法示例
2017/02/03 Javascript
Angular在模板驱动表单中自定义校验器的方法
2017/08/09 Javascript
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
2017/08/18 Javascript
JavaScript中利用Array filter() 方法压缩稀疏数组
2018/02/24 Javascript
详解Webpack loader 之 file-loader
2018/11/07 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
基于JavaScript或jQuery实现网站夜间/高亮模式
2020/05/30 jQuery
Python的randrange()方法使用教程
2015/05/15 Python
TensorFLow用Saver保存和恢复变量
2018/03/10 Python
pandas 使用apply同时处理两列数据的方法
2018/04/20 Python
python3使用smtplib实现发送邮件功能
2018/05/22 Python
python之文件读取一行一行的方法
2018/07/12 Python
Windows 8.1 64bit下搭建 Scrapy 0.22 环境
2018/11/18 Python
python查看文件大小和文件夹内容的方法
2019/07/08 Python
Python关于__name__属性的含义和作用详解
2020/02/19 Python
基于打开pycharm有带图片md文件卡死问题的解决
2020/04/24 Python
python pillow库的基础使用教程
2021/01/13 Python
诺思信科技(南京)有限公司.NET笔试题答案
2013/07/06 面试题
什么是封装
2013/03/26 面试题
计算机网络专业个人的自我评价
2013/10/17 职场文书
2014年两会学习心得范例
2014/03/17 职场文书
项目建议书
2015/02/04 职场文书
MySQL里面的子查询的基本使用
2021/08/02 MySQL
Win11快速关闭所有广告推荐
2022/04/19 数码科技