• 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 更多欢迎关注下。

  • 相关阅读:
    centos7 查看启动ntp服务命令
    集群重启某一主机下所有osd down解决办法
    不卸载ceph重新获取一个干净的集群环境
    centos7 中文乱码解决方法
    ceph-deploy mon add 失败
    批量删除osd的shell脚本
    搭建自己的框架WedeNet(二)
    搭建自己的框架WedeNet(一)
    多线程总结
    C#中操作单个cookie和cookie字典
  • 原文地址:https://www.cnblogs.com/jincon/p/2136979.html
Copyright © 2020-2023  润新知