首页 > php教程 > php手册 > 正文

PHP中二维数组的排序方法

php中文网
发布: 2016-06-06 19:57:31
原创
1234人浏览过

欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 本文介绍的是从 BugFree 摘录来的二维数组排序函数,可以实现类似 MySQL 的 ORDER BY 效果,当数组不是从数据库取得时会有特殊应用。 ?php // 说明:PHP中二维数组的排序方法 // 整理:http://www.xk

欢迎进入linux社区论坛,与200万技术人员互动交流 >>进入

    本文介绍的是从 BugFree 摘录来的二维数组排序函数,可以实现类似 MySQL 的 ORDER BY 效果,当数组不是从数据库取得时会有特殊应用。

   

    // 说明:PHP中二维数组的排序方法

    // 整理:http://www.xker.com

    /**

    * @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

    * @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中二维数组的排序方法

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号