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 cookie 登录验证示例代码
Mar 16 PHP
PHP 页面跳转到另一个页面的多种方法方法总结
Jul 07 PHP
php smarty 二级分类代码和模版循环例子
Jun 01 PHP
PHP IF ELSE简化/三元一次式的使用
Aug 22 PHP
Zend的Registry机制的使用说明
May 02 PHP
php实现singleton()单例模式实例
Nov 06 PHP
Codeigniter购物车类不能添加中文的解决方法
Nov 29 PHP
php获取CSS文件中图片地址并下载到本地的方法
Dec 02 PHP
thinkphp3.x中cookie方法的用法分析
May 19 PHP
Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决方法
Apr 02 PHP
Laravel 框架控制器 Controller原理与用法实例分析
Apr 14 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知道与问问的采集插件代码
2010/10/12 PHP
PHP管理内存函数 memory_get_usage()使用介绍
2012/09/23 PHP
实例介绍PHP的Reflection反射机制
2014/08/05 PHP
给WordPress的编辑后台添加提示框的代码实例分享
2015/12/25 PHP
JQuery CSS样式控制 学习笔记
2009/07/23 Javascript
基于Jquery的文字自动截取(提供源代码)
2011/08/09 Javascript
javascript限制文本框只允许输入数字(曾经与现在的方法对比)
2013/01/18 Javascript
js解析与序列化json数据(三)json的解析探讨
2013/02/01 Javascript
js 自动播放的实例代码
2013/11/19 Javascript
JavaScript实现MIPS乘法模拟的方法
2015/04/17 Javascript
学习vue.js计算属性
2016/12/03 Javascript
xmlplus组件设计系列之文本框(TextBox)(3)
2017/05/03 Javascript
Node.js实现文件上传的示例
2017/06/28 Javascript
js数字滑动时钟的简单实现(示例讲解)
2017/08/14 Javascript
jQuery封装animate.css的实例
2018/01/04 jQuery
微信小程序自定义可滑动日历界面
2018/12/28 Javascript
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
2019/04/16 Javascript
解决微信小程序中的滚动穿透问题
2019/09/16 Javascript
javascript实现倒计时效果
2020/02/17 Javascript
简单了解常用的JavaScript 库
2020/07/16 Javascript
使用纯前端JavaScript实现Excel导入导出方法过程详解
2020/08/07 Javascript
python自动化测试实例解析
2014/09/28 Python
python私有属性和方法实例分析
2015/01/15 Python
在Python程序中操作MySQL的基本方法
2015/07/29 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
2017/11/01 Python
python dlib人脸识别代码实例
2019/04/04 Python
python3对接mysql数据库实例详解
2019/04/30 Python
pytorch: Parameter 的数据结构实例
2019/12/31 Python
Python如何绘制日历图和热力图
2020/08/07 Python
python3 使用ssh隧道连接mysql的操作
2020/12/05 Python
应聘自荐书
2013/10/08 职场文书
父亲八十大寿答谢词
2014/01/23 职场文书
党员创先争优活动总结
2014/05/04 职场文书
党员三严三实对照检查材料
2014/10/13 职场文书
先进工作者主要事迹材料
2015/11/03 职场文书
CSS3实现模糊背景的三种效果示例
2021/03/30 HTML / CSS