加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

在php或mysql中使用内部数组排序数组

发布时间:2020-12-13 17:14:59 所属栏目:PHP教程 来源:网络整理
导读:我有一个像这样的数组, 数组[0] [0],[1] [0],[2] [0]是问题,数组[0] [1],[1] [1],[2] [1]是答案的问题. 现在我想根据答案的数量对这个数组进行排序. 第一个问题只有一个答案和 第二个有两个答案,第三个有三个答案. 排序的数组应该按照该问题的答案数降序排列
我有一个像这样的数组,

数组[0] [0],[1] [0],[2] [0]是问题,数组[0] [1],[1] [1],[2] [1]是答案的问题.
现在我想根据答案的数量对这个数组进行排序.
第一个问题只有一个答案和
第二个有两个答案,第三个有三个答案.
排序的数组应该按照该问题的答案数降序排列.
反正有没有在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
                        )
                )
        )

解决方法

这应该工作:

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;
});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读