4

私はこのような1つの配列を持っています、

array [0] [0]、[1] [0]、[2] [0]は質問であり、array [0] [1]、[1] [1]、[2][1]はその答えです。質問。
ここで、回答の数に関してこの配列を並べ替えたいと思います。
1番目のQuesには1つの回答しかなく、2番目のQuesには2つの回答があり、3番目のQuesには3つの回答があります。
ソートされた配列は、その質問に対する回答の数に関して降順である必要があります。SQLでこれを達成する方法はありますか?または、どのようにPHPでソートできますか?私の質問が明確であることを願っています。前もって感謝します。

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [0] => 12
                    [1] => 110
                    [2] => Tom
                    [3] => Tom@gmail.com
                    [4] => Hello tom how are you?
                    [5] => 2013-01-03 14:54:07
                )

            [1] => Array
                (
                    [0] => Array
                        (
                            [0] => 12
                            [1] => Yes i am fine.
                            [2] => Arun
                            [3] => arun@gmail.com
                            [4] => 2013-01-03 14:55:22
                        )
                )
        )
    [1] => Array
        (
            [0] => Array
                (
                    [0] => 12
                    [1] => 110
                    [2] => Tom
                    [3] => Tom@gmail.com
                    [4] => Hello tom how are you.
                    [5] => 2013-01-03 14:54:07
                )

            [1] => Array
                (
                    [0] => Array
                        (
                            [0] => 12
                            [1] => Yes i am fine
                            [2] => Arun
                            [3] => arun@gmail.com
                            [4] => 2013-01-03 14:55:22
                        )
                    [1] => Array
                        (
                            [0] => 12
                            [1] => Yes i am fine
                            [2] => Arun
                            [3] => arun@gmail.com
                            [4] => 2013-01-03 14:55:22
                        )
                )
        )
    [2] => Array
        (
            [0] => Array
                (
                    [0] => 12
                    [1] => 110
                    [2] => Tom
                    [3] => Tom@gmail.com
                    [4] => Hello tom how are you.
                    [5] => 2013-01-03 14:54:07
                )
            [1] => Array
                (
                    [0] => Array
                        (
                            [0] => 12
                            [1] => Yes i am fine
                            [2] => Arun
                            [3] => arun@gmail.com
                            [4] => 2013-01-03 14:55:22
                        )
                    [1] => Array
                        (
                            [0] => 12
                            [1] => Yes i am fine
                            [2] => Arun
                            [3] => arun@gmail.com
                            [4] => 2013-01-03 14:55:22
                        )
                [2] => Array
                        (
                            [0] => 12
                            [1] => Yes i am fine
                            [2] => Arun
                            [3] => arun@gmail.com
                            [4] => 2013-01-03 14:55:22
                        )
                )
        )
4

1 に答える 1

4

これは機能するはずです:

function cmp($a, $b)
{
    return count($a[1]) > count($b[1]) ? -1 : 1;
}

usort($data, 'cmp');

または、PHP 5.3.0以上を使用している場合は、次を使用できます。

usort($data, function ($a, $b) {
    return count($a[1]) > count($b[1]) ? -1 : 1;
});
于 2013-01-04T05:59:20.850 に答える