如何在PHP中洗牌一个数组,以便交换所有行?

如何在PHP中洗牌一个数组,以便交换所有行?,php,arrays,Php,Arrays,我有一个数组,它根据视频的喜好按降序排列视频数据。这是我的阵列:- Array $video_order_list ( [0] => Array ( [video_id] => 1 [video_title] => A1 [video_like] => 120 ) [1] => Array ( [video

我有一个数组,它根据视频的喜好按降序排列视频数据。这是我的阵列:-

Array $video_order_list
(
    [0] => Array
        (
            [video_id] => 1
            [video_title] => A1
            [video_like] => 120
        )

    [1] => Array
        (
            [video_id] => 3
            [video_title] => A3
            [video_like] => 73
        )   

    [2] => Array
        (
            [video_id] => 2
            [video_title] => A2
            [video_like] => 63
        )

    [3] => Array
        (
            [video_id] => 4
            [video_title] => A4
            [video_like] => 55
        )

    [4] => Array
        (
            [video_id] => 5
            [video_title] => A5
            [video_like] => 40
        )       

    [5] => Array
        (
            [video_id] => 6
            [video_title] => A6
            [video_like] => 10
        )   

    [6] => Array
        (
            [video_id] => 7
            [video_title] => A7
            [video_like] => 3
        )
)
我正在将阵列复制到另一个阵列:-

$random_list = $video_order_list;
然后我想洗牌数组,我用了这个:-

shuffle($random_list);
然而,我的洗牌阵法可能是这样的:-

Array $random_list
(
    [0] => Array
        (
            [video_id] => 2
            [video_title] => A2
            [video_like] => 63
        )

    [1] => Array
        (
            [video_id] => 3
            [video_title] => A3
            [video_like] => 73
        )   

    [2] => Array
        (
            [video_id] => 7
            [video_title] => A7
            [video_like] => 3
        )

    [3] => Array
        (
            [video_id] => 4
            [video_title] => A4
            [video_like] => 55
        )

    [4] => Array
        (
            [video_id] => 6
            [video_title] => A6
            [video_like] => 10
        )

    [5] => Array
        (
            [video_id] => 5
            [video_title] => A5
            [video_like] => 40
        )       

    [6] => Array
        (
            [video_id] => 1
            [video_title] => A1
            [video_like] => 120
        )   
)

查看
video\u id=4
仍处于第三索引(第四位置)。如何检查此类问题?

您可以创建一个函数checkArr()来检查数组中的任何元素是否位于同一位置,如果不匹配则返回false,并在循环中使用shuffle(),同时将条件保持为checkArr()

您可以使用array\u rand()函数编写您自己的函数,创建相同大小的新数组,并编写一个循环,在循环中不断从第一个数组中选择随机值,如果新索引不匹配,则插入新数组。没有?