Home  >  Article  >  Backend Development  >  请教一个php多维数组排序问题

请教一个php多维数组排序问题

WBOY
WBOYOriginal
2016-06-06 20:15:20913browse

php新手请教一个问题;
原数组结构如下,原数组是按ads_id,time进行排序;
现在的需求是根据二维数组的num总和重新进行排序

<code>Array
(
    [5] => Array
        (
            [0] => Array
                (
                    [num] => 840
                    [time] => 2015-10
                    [ads_id] => 5
                )

            [1] => Array
                (
                    [num] => 684
                    [time] => 2015-11
                    [ads_id] => 5
                )
        )

    [6] => Array
        (
            [0] => Array
                (
                    [num] => 23
                    [time] => 2015-10
                    [ads_id] => 6
                )

            [1] => Array
                (
                    [num] => 37
                    [time] => 2015-11
                    [ads_id] => 6
                )
        )

    [7] => Array
        (
            [0] => Array
                (
                    [num] => 280
                    [time] => 2015-10
                    [ads_id] => 7
                )

            [1] => Array
                (
                    [num] => 343
                    [time] => 2015-11
                    [ads_id] => 7
                )
        )
)
</code>

最终实现排序如下:

<code>Array
(
    [5] => Array
        (
            [0] => Array
                (
                    [num] => 840
                    [time] => 2015-10
                    [ads_id] => 5
                )

            [1] => Array
                (
                    [num] => 684
                    [time] => 2015-11
                    [ads_id] => 5
                )
        )
        
    [7] => Array
        (
            [0] => Array
                (
                    [num] => 280
                    [time] => 2015-10
                    [ads_id] => 7
                )

            [1] => Array
                (
                    [num] => 343
                    [time] => 2015-11
                    [ads_id] => 7
                )
        )
        
    [6] => Array
        (
            [0] => Array
                (
                    [num] => 23
                    [time] => 2015-10
                    [ads_id] => 6
                )

            [1] => Array
                (
                    [num] => 37
                    [time] => 2015-11
                    [ads_id] => 6
                )
        )
)
</code>

回复内容:

php新手请教一个问题;
原数组结构如下,原数组是按ads_id,time进行排序;
现在的需求是根据二维数组的num总和重新进行排序

<code>Array
(
    [5] => Array
        (
            [0] => Array
                (
                    [num] => 840
                    [time] => 2015-10
                    [ads_id] => 5
                )

            [1] => Array
                (
                    [num] => 684
                    [time] => 2015-11
                    [ads_id] => 5
                )
        )

    [6] => Array
        (
            [0] => Array
                (
                    [num] => 23
                    [time] => 2015-10
                    [ads_id] => 6
                )

            [1] => Array
                (
                    [num] => 37
                    [time] => 2015-11
                    [ads_id] => 6
                )
        )

    [7] => Array
        (
            [0] => Array
                (
                    [num] => 280
                    [time] => 2015-10
                    [ads_id] => 7
                )

            [1] => Array
                (
                    [num] => 343
                    [time] => 2015-11
                    [ads_id] => 7
                )
        )
)
</code>

最终实现排序如下:

<code>Array
(
    [5] => Array
        (
            [0] => Array
                (
                    [num] => 840
                    [time] => 2015-10
                    [ads_id] => 5
                )

            [1] => Array
                (
                    [num] => 684
                    [time] => 2015-11
                    [ads_id] => 5
                )
        )
        
    [7] => Array
        (
            [0] => Array
                (
                    [num] => 280
                    [time] => 2015-10
                    [ads_id] => 7
                )

            [1] => Array
                (
                    [num] => 343
                    [time] => 2015-11
                    [ads_id] => 7
                )
        )
        
    [6] => Array
        (
            [0] => Array
                (
                    [num] => 23
                    [time] => 2015-10
                    [ads_id] => 6
                )

            [1] => Array
                (
                    [num] => 37
                    [time] => 2015-11
                    [ads_id] => 6
                )
        )
)
</code>

<code>function mySort($a, $b) {
    $sumA = 0;
    $sumB = 0;
    foreach($a as $ele) {
        $sumA += $ele['num'];
    }
    foreach($b as $ele) {
        $sumB += $ele['num'];
    }
    return $sumB </code>

使用 usort 自定义排序规则

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn