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 相关文章推荐
Get或Post提交值的非法数据处理
Oct 09 PHP
提升PHP速度全攻略
Oct 09 PHP
php站内搜索并高亮显示关键字的实现代码
Dec 29 PHP
joomla jce editor 解决上传中文名文件失败问题
Jun 09 PHP
将php数组输出html表格的方法
Feb 24 PHP
PHP引用返回用法示例
May 28 PHP
DEDE实现转跳属性文档在模板上调用出转跳地址
Nov 04 PHP
php解析base64数据生成图片的方法
Dec 06 PHP
php实现产品加入购物车功能(1)
Jul 23 PHP
thinkPHP+phpexcel实现excel报表输出功能示例
Jun 06 PHP
PHP写API输出的时用echo的原因详解
Apr 28 PHP
php慢查询日志和错误日志使用详解
Feb 27 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
967 个函式
2006/10/09 PHP
PHP简单系统查询模块代码打包下载
2008/06/07 PHP
教你php如何实现验证码
2016/01/20 PHP
laravel Model 执行事务的实现
2019/10/10 PHP
javascript判断iphone/android手机横竖屏模式的函数
2011/12/20 Javascript
基于dom编程中 动态创建与删除元素的使用
2013/04/17 Javascript
js购物车实现思路及代码(个人感觉不错)
2013/12/23 Javascript
jQuery对象和DOM对象之间相互转换的方法介绍
2015/02/28 Javascript
JavaScript中通过prototype属性共享属性和方法的技巧实例
2015/03/13 Javascript
原生和jQuery的ajax用法详解
2017/01/23 Javascript
vue+swiper实现组件化开发的实例代码
2017/10/26 Javascript
JS组件系列之Gojs组件 前端图形化插件之利器
2017/11/29 Javascript
浅谈Webpack 是如何加载模块的
2018/05/24 Javascript
解决微信小程序防止无法回到主页的问题
2018/09/28 Javascript
jQuery each和js forEach用法比较
2019/02/27 jQuery
详解Vue-cli3 项目在安卓低版本系统和IE上白屏问题解决
2019/04/14 Javascript
Layui tree 下拉菜单树的实例代码
2019/09/21 Javascript
[42:27]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第三局
2016/03/05 DOTA
Python通过select实现异步IO的方法
2015/06/04 Python
django 通过url实现简单的权限控制的例子
2019/08/16 Python
Python with语句和过程抽取思想
2019/12/23 Python
Django 如何使用日期时间选择器规范用户的时间输入示例代码详解
2020/05/22 Python
python实现mask矩阵示例(根据列表所给元素)
2020/07/30 Python
PyCharm中关于安装第三方包的三个建议
2020/09/17 Python
Ellesse英国官网:意大利高级运动品牌
2019/07/23 全球购物
ECCO英国官网:丹麦鞋履品牌
2019/09/03 全球购物
教师实习的自我鉴定
2013/10/26 职场文书
酒店司机岗位职责
2013/12/14 职场文书
童装店创业计划书
2014/01/09 职场文书
高中军训广播稿
2014/01/14 职场文书
法制演讲稿
2014/09/10 职场文书
村委会贫困证明范文
2014/09/21 职场文书
基层党员四风问题自我剖析材料
2014/09/29 职场文书
中班下学期个人工作总结
2015/02/12 职场文书
Mysql 如何合理地统计一个数据库里的所有表的数据量
2022/04/18 MySQL
iOS 16进一步确认,一共支持16款iPhone
2022/04/28 数码科技