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 函数使用方法与函数定义方法
May 09 PHP
php 图片加水印与上传图片加水印php类
May 12 PHP
php数组去重的函数代码
Feb 03 PHP
Drupal7中常用的数据库操作实例
Mar 02 PHP
PHP处理postfix邮件内容的方法
Jun 16 PHP
php实现生成验证码实例分享
Apr 10 PHP
php实现在线通讯录功能(附源码)
May 13 PHP
thinkPHP中配置的读取与C方法详解
Dec 05 PHP
PHP在弹框中获取foreach中遍历的id值并传递给地址栏
Jun 13 PHP
Laravel网站打开速度优化的方法汇总
Jul 16 PHP
php接口实现拖拽排序功能
Apr 23 PHP
PHP pthreads v3下同步处理synchronized用法示例
Feb 21 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也可以?成Shell Script
2006/10/09 PHP
codeigniter数据库操作函数汇总
2014/06/12 PHP
PHP实现AES256加密算法实例
2014/09/22 PHP
PHP实现补齐关闭的HTML标签
2016/03/22 PHP
CI框架简单分页类用法示例
2020/06/06 PHP
Javascript实例教程(19) 使用HoTMetal(4)
2006/12/23 Javascript
用Javascript做flash做的事..才完成的一个类.Auntion Action var 0.1
2007/02/23 Javascript
我遇到的参数传递中 双引号单引号嵌套问题
2010/02/11 Javascript
jquery 查找新建元素代码
2010/07/06 Javascript
一些常用且实用的原生JavaScript函数
2010/09/08 Javascript
js FLASH幻灯片字符串中有连接符&的处理方法
2012/03/01 Javascript
table行随鼠标移动变色示例
2014/05/07 Javascript
JavaScript通过事件代理高亮显示表格行的方法
2015/05/27 Javascript
javaScript中的原型解析【推荐】
2016/05/05 Javascript
原生JS写Ajax的请求函数功能
2017/12/22 Javascript
Node.js搭建WEB服务器的示例代码
2018/08/15 Javascript
基于Vue的侧边目录组件的实现
2020/02/05 Javascript
[01:04]DOTA2上海特锦赛现场采访 FreeAgain遭众解说围攻
2016/03/25 DOTA
在Python的web框架中中编写日志列表的教程
2015/04/30 Python
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
2016/04/12 Python
Python yield与实现方法代码分析
2018/02/06 Python
Python爬虫信息输入及页面的切换方法
2018/05/11 Python
python 实现简单的FTP程序
2019/12/27 Python
python的json包位置及用法总结
2020/06/21 Python
Python下使用Trackbar实现绘图板
2020/10/27 Python
详解HTML5 window.postMessage与跨域
2017/05/11 HTML / CSS
美国电视购物HSN官网:HSN
2016/09/07 全球购物
澳大利亚宠物食品和用品商店:PETstock
2020/01/02 全球购物
Java如何获得ResultSet的总行数
2016/09/03 面试题
学雷锋标兵事迹材料
2014/08/18 职场文书
2015年个人自我剖析材料
2014/12/29 职场文书
工作检讨书范文
2015/01/23 职场文书
2015年机关作风和效能建设工作总结
2015/07/23 职场文书
Django如何创作一个简单的最小程序
2021/05/12 Python
vue使用节流函数的踩坑实例指南
2021/05/20 Vue.js
MySQL池化框架学习接池自定义
2022/07/23 MySQL