【收藏】php实现二维数组排序
2012-12-20 21:30
267 查看
php关于数组操作的函数很多,然而没有一个函数能够对二维数组排序,然而在实现的项目开发过程中有时候我们需要对二维数组排序,那么下面的这段代码就能满足需求了,能很好地对二维数组排序:
<?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; } // Get args number. $ArgCount = func_num_args(); // Get keys to sort by and put them to SortRule array. for ($I = 1; $I < $ArgCount; $I++) { $Arg = func_get_arg($I); if (!eregi("SORT", $Arg)) { $KeyNameList[] = $Arg; $SortRule[] = '$' . $Arg; } else { $SortRule[] = $Arg; } } // Get the values according to the keys and put them to array. foreach ($ArrayData AS $Key => $Info) { foreach ($KeyNameList AS $KeyName) { ${$KeyName}[$Key] = $Info[$KeyName]; } } // Create the eval string and eval it. $EvalString = 'array_multisort(' . join(",", $SortRule) . ',$ArrayData);'; eval($EvalString); return $ArrayData; } //################# 示例 ################# $arr = array( array( 'name' => '学习', 'size' => '1235', 'type' => 'jpe', 'time' => '1921-11-13', 'class' => 'dd', ), array( 'name' => '中国功夫', 'size' => '153', 'type' => 'jpe', 'time' => '2005-11-13', 'class' => 'jj', ), array( 'name' => '编程', 'size' => '35', 'type' => 'gif', 'time' => '1997-11-13', 'class' => 'dd', ), array( 'name' => '中国功夫', 'size' => '65', 'type' => 'jpe', 'time' => '1925-02-13', 'class' => 'yy', ), array( 'name' => '中国功夫', 'size' => '5', 'type' => 'icon', 'time' => '1967-12-13', 'class' => 'rr', ), ); print_r($arr); //注意:按照数字方式排序时 153 比 65 小 $temp = sysSortArray($arr, "name", "SORT_ASC", "type", "SORT_DESC", "size", "SORT_ASC", "SORT_STRING"); print_r($temp); ?>
相关文章推荐
- php自定义函数实现二维数组按指定key排序的方法
- php自定义函数实现二维数组排序功能
- php二维数组排序的三种实现方式
- 关于PHP二维数组排序使用key实现
- PHP实现二维数组按某列进行排序的方法
- php 二维数组排序比较 2 —— 快速排序法 分类: php 二维数组排序 快速排序 2014-06-24 11:39 190人阅读 评论(0) 收藏
- php二维数组排序实现
- PHP实现对二维数组某个键排序的方法
- PHP二维数组排序简单实现方法
- PHP实现二维数组根据key进行排序的方法
- PHP实现在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
- php实现二维数组排序array_multisort($ages, SORT_DESC, $home)函数
- 不使用PHP内置排序函数对二维数组实现快速排序的面试题
- PHP 二维数组根据某个字段排序的具体实现
- php自定义函数实现二维数组排序功能
- PHP二维数组order by排序的实现
- PHP实现对二维数组某个键排序的方法
- PHP 二维数组实现SQL中的ORDER BY排序效果
- PHP实现二维数组按某列进行排序的方法