• 技术文章 >后端开发 >php教程

    PHP排序之二维数组的按照字母排序实现代码_php技巧

    2016-05-17 09:16:02原创974
    复制代码 代码如下:

    /**
    * 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
    * @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 "
    "; 
    print_r($temp);
    ?>
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:二维数组 字母排序
    上一篇:php报表之jpgraph柱状图实例代码_php技巧 下一篇:php中使用Curl、socket、file_get_contents三种方法POST提交数据_php技巧
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• 循环有关问题求大神解答 小弟我的QQ是2509577255• 使用curl 提交表单(多维数组+文件)数据到服务器的有关问题 • 为什么小弟我配置的PHP5不支持MySQL • 网站领航的代码,有没有开源的推荐下 • ()检测用户名是否在数据库失败!
    1/1

    PHP中文网