PHP排序之二维数组的按照字母排序方法

PHP排序之二维数组的按照字母排序方法,
在实际开发还是非常有用的,有需要的拿去, http://lab.wehefei.com
<? 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 );
?>


本文来源:


来源:合肥网产品中心 http://lab.wehefei.com 更多欢迎关注下。

 

转载于:https://www.cnblogs.com/jincon/archive/2011/08/13/2136979.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值