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

发布于 2024-09-29 11:59:32 字数 1283 浏览 1 评论 0原文

嗨,我必须在 desc 中对这个数组进行排序。使用 php 根据 ratingVal 进行排序。我该怎么办呢。

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
        )

)

Hi I have to sort this array in desc. order on the basis of ratingVal using php. How can I do that.

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
        )

)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

且行且努力 2024-10-06 11:59:32

使用 usort

function sortIt( $a, $b ){
    return $b['ratingVal'] - $a['ratingVal'];
}

usort( $yourArray, "sortIt" );

对于升序,交换减法中的 $a$b

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

Use usort:

function sortIt( $a, $b ){
    return $b['ratingVal'] - $a['ratingVal'];
}

usort( $yourArray, "sortIt" );

For ascending order, swap the $a and $b in the subtraction.

The usort function allows you to create your own custom sort function

卸妝后依然美 2024-10-06 11:59:32

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

如果这不合适,您必须实现比较函数并使用 usort() 函数。

If you retrieve this data from mysql database (as I see, mysql tag is specified), you may use ORDER BY statement in your query.

If this is not suitable, you'll have to implement comparison function and use usort() function.

邮友 2024-10-06 11:59:32

您已将代码标记为“php5.3”,因此我将给出特定于 5.3 的答案。

改编Harmen的代码:

usort( $yourArray, function($a, $b) {
    if( $a['ratingVal'] == $b['ratingVal'] )
        return 0;
    return ( $a['ratingVal'] < $b['ratingVal'] ) ? 1 : -1;
} );

这使用usort 匿名函数,PHP 5.3 中的新增功能。

You've tagged your code "php5.3", so I'm going to give a 5.3-specific answer.

Adapting Harmen's code:

usort( $yourArray, function($a, $b) {
    if( $a['ratingVal'] == $b['ratingVal'] )
        return 0;
    return ( $a['ratingVal'] < $b['ratingVal'] ) ? 1 : -1;
} );

This uses usort and anonymous functions, a new addition in PHP 5.3.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文