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 Notice: Undefined index 错误提示解决方法
Aug 29 PHP
php设计模式 Proxy (代理模式)
Jun 26 PHP
将时间以距今多久的形式表示,PHP,js双版本
Sep 25 PHP
利用PHP扩展vld查看PHP opcode操作步骤
Mar 04 PHP
PHP 基于Yii框架中使用smarty模板的方法详解
Jun 13 PHP
thinkphp四种url访问方式详解
Nov 28 PHP
php中print(),print_r(),echo()的区别详解
Dec 01 PHP
PHP7新特性foreach 修改示例介绍
Aug 26 PHP
PHP生成推广海报的方法分享
Apr 22 PHP
PHP设计模式之观察者模式定义与用法分析
Apr 04 PHP
Smarty模板类内部原理实例分析
Jul 03 PHP
PHP单文件上传原理及上传函数的封装操作示例
Sep 02 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格式化工具Beautify PHP小小BUG
2008/04/24 PHP
Jquery实现弹出层分享微博插件具备动画效果
2013/04/03 Javascript
javascript函数作用域学习示例(js作用域)
2014/01/13 Javascript
将查询条件的input、select清空
2014/01/14 Javascript
不使用jquery实现js打字效果示例分享
2014/01/19 Javascript
JavaScript编程中window的location与history对象详解
2015/10/26 Javascript
用NODE.JS中的流编写工具是要注意的事项
2016/03/01 Javascript
基于JS模仿windows文件按名称排序效果
2016/06/29 Javascript
详解利用exif.js解决ios手机上传竖拍照片旋转90度问题
2016/11/04 Javascript
基于jQuery实现左侧菜单栏可折叠功能
2016/12/27 Javascript
Jil,高效的json序列化和反序列化库
2017/02/15 Javascript
JS实现点击Radio动态更新table数据
2017/07/18 Javascript
ionic 3.0+ 项目搭建运行环境的教程
2017/08/09 Javascript
详解Vue2.0 事件派发与接收
2017/09/05 Javascript
nuxt配置通过指定IP和端口访问的实现
2020/01/08 Javascript
vue setInterval 定时器失效的解决方式
2020/07/30 Javascript
vue中提示$index is not defined错误的解决方式
2020/09/02 Javascript
Python实现子类调用父类的方法
2014/11/10 Python
使用Python编写类UNIX系统的命令行工具的教程
2015/04/15 Python
python正则实现提取电话功能
2018/02/24 Python
python针对excel的操作技巧
2018/03/13 Python
python代码过长的换行方法
2018/07/19 Python
python实现简单flappy bird
2018/12/24 Python
PyCharm的设置方法和第一个Python程序的建立
2019/01/16 Python
浅谈Python大神都是这样处理XML文件的
2019/05/31 Python
python 接口实现 供第三方调用的例子
2019/08/13 Python
JupyterNotebook 输出窗口的显示效果调整方法
2020/04/13 Python
一款利用html5和css3实现的3D立方体旋转效果教程
2016/04/26 HTML / CSS
Everything But Water官网:美国泳装品牌
2019/03/17 全球购物
中东地区最大的奢侈品市场:The Luxury Closet
2019/04/09 全球购物
人事主管岗位职责范本
2013/12/04 职场文书
事业单位公务员的职业生涯规划
2014/01/15 职场文书
一年级班主任寄语
2014/01/19 职场文书
质量提升方案
2014/06/16 职场文书
2015年银行个人工作总结
2015/05/14 职场文书
pytorch损失反向传播后梯度为none的问题
2021/05/12 Python