首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用php对多维数组进行排序?

问如何使用php对多维数组进行排序?
EN

Stack Overflow用户
提问于 2010-10-27 18:30:51
回答 3查看 2.5K关注 0票数 0

嗨,我必须在desc中对这个数组进行排序。在ratingVal的基础上使用php订购。我怎么能做到这一点。

代码语言:javascript
复制
Array
(
    [0] => Array
        (
            [rating_postid] => 26
            [raCnt] => 6
            [sRate] => 18
            [ratingVal] => 3
        )

    [1] => Array
        (
            [rating_postid] => 714
            [raCnt] => 3
            [sRate] => 14
            [ratingVal] => 4.6666666666667
        )

    [2] => Array
        (
            [rating_postid] => 14
            [raCnt] => 4
            [sRate] => 12
            [ratingVal] => 3
        )

    [3] => Array
        (
            [rating_postid] => 290
            [raCnt] => 2
            [sRate] => 10
            [ratingVal] => 5
        )

    [4] => Array
        (
            [rating_postid] => 194
            [raCnt] => 2
            [sRate] => 8
            [ratingVal] => 4
        )

    [5] => Array
        (
            [rating_postid] => 134
            [raCnt] => 2
            [sRate] => 6
            [ratingVal] => 3
        )

    [6] => Array
        (
            [rating_postid] => 707
            [raCnt] => 1
            [sRate] => 5
            [ratingVal] => 5
        )

)
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-10-27 18:35:10

使用usort

代码语言:javascript
复制
function sortIt( $a, $b ){
    return $b['ratingVal'] - $a['ratingVal'];
}

usort( $yourArray, "sortIt" );

对于升序,在减法中交换$a和$b。

usort函数允许您创建自己的自定义排序函数

票数 3
EN

Stack Overflow用户

发布于 2010-10-27 18:37:17

如果您从mysql数据库检索此数据(如我所见,指定了mysql标记),则可以在查询中使用ORDER BY语句。

如果这不合适,你将不得不实现比较函数并使用usort()函数。

票数 1
EN

Stack Overflow用户

发布于 2010-10-27 18:43:51

您已经将代码标记为"php5.3",所以我将给出一个特定于5.3的答案。

修改Harmen的代码:

代码语言:javascript
复制
usort( $yourArray, function($a, $b) {
    if( $a['ratingVal'] == $b['ratingVal'] )
        return 0;
    return ( $a['ratingVal'] < $b['ratingVal'] ) ? 1 : -1;
} );

这使用了usort和anonymous functions,这是PHP5.3中的一个新功能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4032240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档