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设计模式之迭代器模式的深入解析
Jun 13 PHP
五款PHP代码重构工具推荐
Oct 14 PHP
javascript数组与php数组的地址传递及值传递用法实例
Jan 22 PHP
php内嵌函数用法实例
Mar 20 PHP
PHP中的session安全吗?
Jan 22 PHP
使用symfony命令创建项目的方法
Mar 17 PHP
CI操作cookie的方法分析(基于helper类库)
Mar 28 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
Nov 14 PHP
PHP静态成员变量
Feb 14 PHP
php实现文件管理与基础功能操作
Mar 21 PHP
thinkphp5.0自定义验证规则使用方法
Nov 16 PHP
PHP接口类(interface)的定义、特点和应用示例
May 18 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 split汉字
2009/06/05 PHP
PHP 模拟$_PUT实现代码
2010/03/15 PHP
php生成zip压缩文件的方法详解
2013/06/09 PHP
百度站点地图(百度sitemap)生成方法分享
2014/01/09 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
2014/08/05 PHP
php-fpm服务启动脚本的方法
2018/04/27 PHP
javascript 原型继承介绍
2011/08/30 Javascript
JQuery的ready函数与JS的onload的区别详解
2013/11/21 Javascript
JS实现侧悬浮浮动实例代码
2013/11/29 Javascript
动态创建script标签实现跨域资源访问的方法介绍
2014/02/28 Javascript
jQuery实现复选框全选/取消全选/反选及获得选择的值
2014/06/12 Javascript
JS循环遍历JSON数据的方法
2014/07/08 Javascript
JavaScript中匿名、命名函数的性能测试
2014/09/04 Javascript
CSS javascript 结合实现悬浮固定菜单效果
2015/08/23 Javascript
Javascript基于对象三大特性(封装性、继承性、多态性)
2016/01/04 Javascript
基于jQuery实现左侧菜单栏可折叠功能
2016/12/27 Javascript
JS实现的数字格式化功能示例
2017/02/10 Javascript
jquery设置css样式的多种方法(总结)
2017/02/21 Javascript
微信小程序 支付后台java实现实例
2017/05/09 Javascript
JavaScript在控件上添加倒计时功能的实现代码
2017/07/04 Javascript
AngularJS 表单验证手机号的实例(非必填)
2017/11/12 Javascript
javascript 通过键名获取键盘的keyCode方法
2017/12/31 Javascript
vue实现歌手列表字母排序下拉滚动条侧栏排序实时更新
2019/05/14 Javascript
Python字符串和字典相关操作的实例详解
2017/09/23 Python
在CMD命令行中运行python脚本的方法
2018/05/12 Python
Windows下python3.7安装教程
2018/07/31 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
2019/05/16 Python
基于MSELoss()与CrossEntropyLoss()的区别详解
2020/01/02 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
2020/09/29 Python
突袭HTML5之Javascript API扩展5—其他扩展(应用缓存/服务端消息/桌面通知)
2013/01/31 HTML / CSS
《夏夜多美》教学反思
2014/02/17 职场文书
求职自荐信怎么写
2014/03/06 职场文书
导游词之襄阳古城
2019/09/27 职场文书
Linux安装Nginx步骤详解
2021/03/31 Servers
MySQL触发器的使用
2021/05/24 MySQL
用React Native制作一个简单的游戏引擎
2021/05/27 Javascript