`
Lamp兄弟
  • 浏览: 16988 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

php二维数组自定义排序

    博客分类:
  • php
阅读更多
<?php
//对二维数组自定义排序
function array_sort($arr,$keys,$type){
    $keysvalue=array();
    $i = 0;
    foreach($arr as $key=>$val) {
        $val[$keys] = str_replace("-","",$val[$keys]);
        $val[$keys] = str_replace(" ","",$val[$keys]);
        $val[$keys] = str_replace(":","",$val[$keys]);
        $keysvalue[] =$val[$keys];
    }
    asort($keysvalue); //key值排序
    reset($keysvalue); //指针重新指向数组第一个
    foreach($keysvalue as $key=>$vals) {
        $keysort[] = $key;
    }
    $new_array = array();
    if($type != "asc"){
        for($ii=count($keysort)-1; $ii>=0; $ii--) {
            $new_array[] = $arr[$keysort[$ii]];
        }
    }else{
        for($ii=0; $ii<count($keysort); $ii++){
        $new_array[] = $arr[$keysort[$ii]];
        }
    }
    return $new_array;
}

$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',
        ),
);

echo '<pre>';
print_r(array_sort($arr,'size','asc'));
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;
        }
    }

    foreach($ArrayData AS $Key => $Info)
    {
        foreach($KeyNameList AS $KeyName)
        {
            ${$KeyName}[$Key] = $Info[$KeyName];
        }
    }
    $EvalString = 'array_multisort('.join(",",$SortRule).',$ArrayData);';
    eval ($EvalString);
    return $ArrayData;
}
?> 
分享到:
评论
1 楼 Lamp兄弟 2013-01-25  
此方法不能同时按多个类型(这里可以理解成数据字段)排序

相关推荐

    php对二维数组进行排序的简单实例

    继上一篇文章:PHP二维数组排序自定义函数,今天,我们再介绍一个php二维数组排序的例子。php对二维数组的排序很简单,主要用到array_multisort函数。例子:复制代码 代码如下:&lt;?php /** * php二维数组排序 * ...

    PHP二维数组排序的3种方法和自定义函数分享

    主要介绍了PHP二维数组排序的3种方法和自定义函数分享,需要的朋友可以参考下

    PHP实现的自定义数组排序函数与排序类示例

    * 二维数组自定义排序函数 * uasort($arr,function_name) * **/ $arr = array( array('a'=&gt;1,'b'=&gt;'c'), array('a'=&gt;4,'b'=&gt;'a'), array('a'=&gt;5,'b'=&gt;'g'), array('a'=&gt;7,'b'=&gt;'f'), array('a'=&gt;6,'b'=&gt;'e') );...

    php自定义函数实现二维数组排序功能

    本文实例讲述了php自定义函数实现二维数组排序功能。分享给大家供大家参考,具体如下: /**作用: 二维数组排序函数,支持多键名排序 * 返回: 排序好的数组 * 使用: array_msort(数组,需要排序的键名,排序方式); *...

    php usort 使用用户自定义的比较函数对二维数组中的值进行排序

    今天发现一个很好用二维数组排序的php方法,usort,推荐给大家,以后二维数组里面,要按照一个字段的值排序用这个方法简单高效,例如下面的数组: [guess_subject] =&gt; Array ( [0] =&gt; Array ( [subject_id] =&gt; ...

    php自定义函数实现二维数组按指定key排序的方法

    本文实例讲述了php自定义函数实现二维数组按指定key排序的方法。分享给大家供大家参考,具体如下: 二维数组官方的排序方法并不好,该函数可以进行指定key的排序,已经测试并使用,代码如下: /*二维数组按指定的...

    php实例分享之二维数组排序

    PHP二维数组的排序需要自定义。 以下函数是对一个给定的二维数组按照指定的键值进行排序,先看函数定义: 复制代码 代码如下:function array_sort($arr,$keys,$type=’asc’){ $keysvalue = $new_array = array(); ...

    php自定义排序uasort函数示例【二维数组按指定键值排序】

    主要介绍了php自定义排序uasort函数,结合实例形式分析了php实现二维数组按指定键值排序的相关操作技巧,需要的朋友可以参考下

    php自定义二维数组排序函数array_orderby用法示例

    主要介绍了php自定义二维数组排序函数array_orderby用法,结合实例形式分析了php针对二维数组进行排序的相关遍历、判定、排序等操作技巧,需要的朋友可以参考下

    php中二维数组排序问题方法详解

    PHP中二维数组排序,可以使用PHP内置函数uasort() 示例一: 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联 回调函数如下:注意回调函数的返回值是负数或者是false的时候,表示回调函数的第一个参数在...

    PHP 多维数组排序(usort,uasort)

    数字索引数组: bool usort( array &$array, callback $cmp_function ) usort函数对指定数组(参数1)按指定方式(参数2)进行排序。 当我们想对多维数组进行排序时,... //自定义数组比较函数,按数组的第二个元素进行比较

    史上最全韩顺平传智播客PHP就业班视频,10月份全集

    9-28 2 二维数组的定义使用 数组排序 9-28 3 顺序查找 二分查找 9-28 4 javascript面向对象编程 9-28 5 javascript对象存在形式 9-28 6 javascript类与对象 9-28 7 给对象指定成员函数 自定义工厂方法 9-30 1 课程...

Global site tag (gtag.js) - Google Analytics