PHP 使用二维数组实现SQL的ORDER BY排序的方法
内容摘要
这篇文章主要为大家详细介绍了PHP 使用二维数组实现SQL的ORDER BY排序的方法,具有一定的参考价值,可以用来参考一下。
经测试代码如下:
<?php
/**
*
* @package BugFree
*
经测试代码如下:
<?php
/**
*
* @package BugFree
*
文章正文
这篇文章主要为大家详细介绍了PHP 使用二维数组实现SQL的ORDER BY排序的方法,具有一定的参考价值,可以用来参考一下。
经测试代码如下:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | <code class = "php" > <?php /** * * @package BugFree * @version $Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp $ 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教程(www.idcnote.com) ***/ </code> |
注:关于PHP 使用二维数组实现SQL的ORDER BY排序的方法的内容就先介绍到这里,更多相关文章的可以留意
代码注释