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乱码问题,UTF-8乱码常见问题小结
Apr 09 PHP
php在程序中将网页生成word文档并提供下载的代码
Oct 09 PHP
php读取excel文件的简单实例
Aug 26 PHP
php switch语句多个值匹配同一代码块的实现
Mar 03 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(三)
Jun 23 PHP
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
Jul 28 PHP
destoon调用企业会员公司形象图片的实现方法
Aug 21 PHP
了解PHP的返回引用和局部静态变量
Jun 04 PHP
PHP getallheaders无法获取自定义头(headers)的问题
Mar 23 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
Jul 26 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
Jul 19 PHP
Laravel 连接(Join)示例
Oct 16 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
codeigniter使用技巧批量插入数据实例方法分享
2013/12/31 PHP
php中smarty实现多模版网站的方法
2015/06/11 PHP
php 命名空间(namespace)原理与用法实例小结
2019/11/13 PHP
JS OOP包机制,类创建的方法定义
2009/11/02 Javascript
复制小说文本时出现的随机乱码的去除方法
2010/09/07 Javascript
Jquery ajaxsubmit上传图片实现代码
2010/11/04 Javascript
js取滚动条的尺寸的函数代码
2011/11/30 Javascript
JQuery.Ajax之错误调试帮助信息介绍
2013/07/04 Javascript
仿当当网淘宝网等主流电子商务网站商品分类导航菜单
2013/09/25 Javascript
jquery显示隐藏input对象
2014/07/21 Javascript
基于JS实现简单的样式切换效果代码
2015/09/04 Javascript
angularjs学习笔记之三大模块(modal,controller,view)
2015/09/26 Javascript
jquery.form.js框架实现文件上传功能案例解析(springmvc)
2016/05/26 Javascript
jQuery的each循环用法简单示例
2016/06/12 Javascript
jQuery Validate 数组 全部验证问题
2017/01/12 Javascript
jQuery层级选择器_动力节点节点Java学院整理
2017/07/04 jQuery
微信小程序搭建(mpvue+mpvue-weui+fly.js)的详细步骤
2018/09/18 Javascript
layui--js控制switch的切换方法
2019/09/03 Javascript
es6中class类静态方法,静态属性,实例属性,实例方法的理解与应用分析
2020/02/15 Javascript
JavaScript计算出两个数的差值
2020/03/19 Javascript
vue单元格多列合并的实现
2020/11/26 Vue.js
Python 调用DLL操作抄表机
2009/01/12 Python
python中的函数用法入门教程
2014/09/02 Python
Python中exit、return、sys.exit()等使用实例和区别
2015/05/28 Python
Python随机生成均匀分布在单位圆内的点代码示例
2017/11/13 Python
Django通过设置CORS解决跨域问题
2020/11/26 Python
Python脚本调试工具安装过程
2021/01/11 Python
css3 给背景设置渐变色的方法
2019/09/12 HTML / CSS
高中数学教师求职信
2013/10/30 职场文书
《特殊的葬礼》教学反思
2014/04/27 职场文书
工作经常出错的检讨书
2014/09/13 职场文书
报表员工作失误检讨书范文
2014/09/19 职场文书
十一国庆节“向国旗敬礼”主题班会活动方案
2014/09/27 职场文书
教师自我剖析材料(群众路线)
2014/09/29 职场文书
2015年党风廉政建设个人总结
2015/08/18 职场文书
五星级酒店宣传口号
2015/12/25 职场文书