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 相关文章推荐
PHP4引用文件语句的对比
Oct 09 PHP
PHP个人网站架设连环讲(一)
Oct 09 PHP
PHP中ADODB类详解
Mar 25 PHP
解析thinkphp基本配置 convention.php
Jun 18 PHP
php中adodbzip类实例
Dec 08 PHP
php查询相似度最高的字符串的方法
Mar 12 PHP
PHP页面输出时js设置input框的选中值
Sep 30 PHP
PHP基于自增数据如何生成不重复的随机数示例
May 19 PHP
php基于自定义函数记录log日志方法
Jul 21 PHP
PHP rmdir()函数的用法总结
Jul 02 PHP
Laravel实现通过blade模板引擎渲染视图
Oct 25 PHP
laravel框架中间件简单使用方法示例
Jan 25 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
短波问题解答
2021/02/28 无线电
二招解决php乱码问题
2012/03/25 PHP
async和DOM Script文件加载比较
2014/07/20 PHP
php版本的cron定时任务执行器使用实例
2014/08/19 PHP
PHP动态规划解决0-1背包问题实例分析
2015/03/23 PHP
php如何实现只替换一次或N次
2015/10/29 PHP
jquery 模拟类搜索框自动完成搜索提示功能(改进)
2010/05/24 Javascript
利用JQuery和JS实现奇偶行背景颜色自定义效果
2012/11/19 Javascript
js动态控制table的tr、td增加及删除的具体实现
2014/04/30 Javascript
浅谈jQuery事件绑定原理
2015/01/02 Javascript
JS+CSS实现仿支付宝菜单选中效果代码
2015/09/25 Javascript
Augularjs-起步详解
2016/07/08 Javascript
Angular2学习教程之组件中的DOM操作详解
2017/05/28 Javascript
2种简单的js倒计时方式
2017/10/20 Javascript
完美解决axios跨域请求出错的问题
2018/02/05 Javascript
关于redux-saga中take使用方法详解
2018/02/27 Javascript
vue2.0父子组件间传递数据的方法
2018/08/16 Javascript
Express结合Webpack的全栈自动刷新
2019/05/23 Javascript
在vue中利用v-html按分号将文本换行的例子
2019/11/14 Javascript
node.js使用http模块创建服务器和客户端完整示例
2020/02/10 Javascript
Javascript如何实现扩充基本类型
2020/08/26 Javascript
Pyramid添加Middleware的方法实例
2013/11/27 Python
Python制作简易版小工具之计算天数的实现思路
2020/02/13 Python
基于python 取余问题(%)详解
2020/06/03 Python
Python Pivot table透视表使用方法解析
2020/09/11 Python
用python 绘制茎叶图和复合饼图
2021/02/26 Python
HTML5拖放效果的实现代码
2016/11/17 HTML / CSS
html2canvas截图空白问题的解决
2020/03/24 HTML / CSS
英国领先的运动营养品牌:Protein Dynamix
2018/01/02 全球购物
销售员自我评价怎么写
2013/09/19 职场文书
安全教育实施方案
2014/03/02 职场文书
热门专业求职信
2014/05/24 职场文书
新农村建设汇报材料
2014/08/15 职场文书
检察院起诉意见书
2015/05/20 职场文书
浅谈Python列表嵌套字典转化的问题
2021/04/07 Python
详解Go与PHP的语法对比
2021/05/29 PHP