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实现登陆验证码(类似条行码状)
Oct 09 PHP
php 获取客户端的真实ip
Nov 30 PHP
基于php使用memcache存储session的详解
Jun 25 PHP
PHP滚动日志的代码实现
Jun 10 PHP
php实现上传图片文件代码
Jul 19 PHP
PHP封装CURL扩展类实例
Jul 28 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
Oct 10 PHP
使用WordPress发送电子邮件的相关PHP函数用法解析
Dec 15 PHP
浅析Laravel5中队列的配置及使用
Aug 04 PHP
PHPMailer发送邮件
Dec 28 PHP
PHP中大括号'{}'用法实例总结
Feb 08 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 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脚本数据库功能详解(上)
2006/10/09 PHP
php利用腾讯ip分享计划获取地理位置示例分享
2014/01/20 PHP
PHP实现简易blog的制作
2016/10/24 PHP
jQuery Ajax 全解析
2009/02/08 Javascript
JS target与currentTarget区别说明
2011/08/28 Javascript
字符串的replace方法应用浅析
2011/12/06 Javascript
Javascript全局变量var与不var的区别深入解析
2013/12/09 Javascript
javascript 实现 原路返回
2015/01/21 Javascript
JavaScript实现判断图片是否加载完成的3种方法整理
2015/03/13 Javascript
js实现带按钮的上下滚动效果
2015/05/12 Javascript
BootStrap组件之进度条的基本用法
2017/01/19 Javascript
详解ElementUI之表单验证、数据绑定、路由跳转
2017/06/21 Javascript
node.js基础知识小结
2018/02/26 Javascript
对Vue.js之事件的绑定(v-on: 或者 @ )详解
2018/09/15 Javascript
如何使用less实现随机下雪动画详解
2019/01/02 Javascript
layui点击左侧导航栏,实现不刷新整个页面,只刷新局部的方法
2019/09/25 Javascript
vue中使用rem布局代码详解
2019/10/30 Javascript
[28:42]Ti4正赛VG vs NEWBEE1
2014/07/19 DOTA
[46:21]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
python下MySQLdb用法实例分析
2015/06/08 Python
Python的SimpleHTTPServer模块用处及使用方法简介
2018/01/22 Python
解决安装pycharm后不能执行python脚本的问题
2019/01/19 Python
树莓派动作捕捉抓拍存储图像脚本
2019/06/22 Python
python批量处理文件或文件夹
2020/07/28 Python
selenium携带cookies模拟登陆CSDN的实现
2021/01/19 Python
html5 利用重力感应实现摇一摇换颜色可用来做抽奖等等
2014/05/07 HTML / CSS
Hunter Boots美国官方网站:赫特威灵顿雨靴
2018/06/16 全球购物
HEMA法国:荷兰原创设计
2019/02/21 全球购物
商务英语专业自荐信
2013/10/14 职场文书
婚礼主持结束词
2014/03/13 职场文书
难忘的一天教学反思
2014/04/30 职场文书
运动会演讲稿
2014/05/07 职场文书
销售员态度差检讨书
2014/10/26 职场文书
药品销售内勤岗位职责
2015/04/13 职场文书
MySQL5.7并行复制原理及实现
2021/06/03 MySQL
sql注入报错之注入原理实例解析
2022/06/10 MySQL