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中在数据库中保存Checkbox数据(2)
Oct 09 PHP
我的群发邮件程序
Oct 09 PHP
PHP中10个不常见却非常有用的函数
Mar 21 PHP
Codeigniter中mkdir创建目录遇到权限问题和解决方法
Jul 25 PHP
php访问数组最后一个元素的函数end()用法
Mar 18 PHP
使用php-timeit估计php函数的执行时间
Sep 06 PHP
symfony2.4的twig中date用法分析
Mar 18 PHP
PHP缩略图生成和图片水印制作
Jan 07 PHP
总结PHP代码规范、流程规范、git规范
Jun 18 PHP
PHP CURL中传递cookie的方法步骤
May 09 PHP
在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
Oct 15 PHP
PHP框架实现WebSocket在线聊天通讯系统
Nov 21 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中遍历stdclass object的实现代码
2011/06/09 PHP
百度站点地图(百度sitemap)生成方法分享
2014/01/09 PHP
PHP排序算法类实例
2015/06/17 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
详解Yaf框架PHPUnit集成测试方法
2017/12/27 PHP
php原生数据库分页的代码实例
2019/02/18 PHP
javascript实现上传图片并预览的效果实现代码
2011/04/11 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
Array栈方法和队列方法的特点说明
2014/01/24 Javascript
jQuery制作简单柱状图实例
2015/01/28 Javascript
ECMAScript 5严格模式(Strict Mode)介绍
2015/03/02 Javascript
原生Js实现简易烟花爆炸效果的方法
2015/03/20 Javascript
jQuery插件formValidator自定义函数扩展功能实例详解
2015/11/25 Javascript
jQuery mobile的header和footer在点击屏幕的时候消失的解决办法
2016/07/01 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
2016/08/19 Javascript
jQuery 利用$.ajax 时获取原生XMLHttpRequest 对象的方法
2016/08/25 Javascript
Vue.js实现简单动态数据处理
2017/02/13 Javascript
详解Vuex管理登录状态
2017/11/13 Javascript
用node撸一个监测复联4开售短信提醒的实现代码
2019/04/10 Javascript
jQuery-Citys省市区三级菜单联动插件使用详解
2019/07/26 jQuery
在Python中操作时间之tzset()方法的使用教程
2015/05/22 Python
python常见排序算法基础教程
2017/04/13 Python
python如何让类支持比较运算
2018/03/20 Python
Python实现购物车购物小程序
2018/04/18 Python
Python函数any()和all()的用法及区别介绍
2018/09/14 Python
django3.02模板中的超链接配置实例代码
2020/02/04 Python
解决matplotlib.pyplot在Jupyter notebook中不显示图像问题
2020/04/22 Python
Python+Opencv实现把图片、视频互转的示例
2020/12/17 Python
H5页面适配iPhoneX(就是那么简单)
2019/12/02 HTML / CSS
春季防火方案
2014/05/10 职场文书
小学兴趣小组活动总结
2014/07/07 职场文书
个人委托书
2014/07/31 职场文书
2014年幼儿园后勤工作总结
2014/11/10 职场文书
工作岗位职责范本
2015/02/15 职场文书
2015年端午节活动策划书
2015/05/05 职场文书
2016反腐倡廉警示教育心得体会
2016/01/13 职场文书