如何在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()函数编写您自己的函数,创建相同大小的新数组,并编写一个循环,在循环中不断从第一个数组中选择随机值,如果新索引不匹配,则插入新数组。没有?