Javascript 随机加载页面后循环浏览其余视频

Javascript 随机加载页面后循环浏览其余视频,javascript,php,video,Javascript,Php,Video,我有3个视频,我想在我的网页上显示。问题是我想加载一个随机视频,但之后我需要显示其他2个视频。有没有办法做到这一点?这就是我下面的内容 <div class="banner-vid"> <video class="videoBG desk" preload="auto" autoplay="" loop="" muted="" poster="" style="width: 1600px; height: auto; top: -64px; left: 0px;">

我有3个视频,我想在我的网页上显示。问题是我想加载一个随机视频,但之后我需要显示其他2个视频。有没有办法做到这一点?这就是我下面的内容

<div class="banner-vid">
    <video class="videoBG desk" preload="auto" autoplay="" loop="" muted="" poster="" style="width: 1600px; height: auto; top: -64px; left: 0px;">
        <?php $array = array('vid1.mp4','vid2.mp4','vid3.mp4'); 
         $shuffle = shuffle($array);
    ?>
    <source type="video/mp4" src="<?php foreach ($array as $vids) { echo "$vids "; } ?>">
    </video>
</div>


您可以使用shuffle函数

shuffle($array);
它将随机化数组中的顺序


根据您对alfallouji答案的评论,我认为使用
shuffle()
不是完美的解决方案

我想不出一个本机函数可以直接删除一个元素,然后再次对其进行预处理,因此这是一个所需逻辑的快速实现:

<?php
$videos = array('vid1.mp4', 'vid2.mp4', 'vid3.mp4');

$firstVideoKey = mt_rand(0,count($videos)-1); // pick random index
$firstVideo = $videos[$firstVideoKey];        // get video at index
unset($videos[$firstVideoKey]);               // unset array value at index
array_unshift($videos, $firstVideo);          // prepend video

foreach ($videos as $video) { ... }

很好的解释,我真的要从中挑选一些东西。

是的,但这会显示剩余的2个视频,例如不播放视频1两次吗?你的意思是像播放列表一样吗?所以想法是在页面加载时有一个随机视频开始。下一个是另外两个。就是这样。加载第一个视频后,不会重复视频。这有意义吗?听起来你想要一个视频播放列表。有很多你可以使用,这里有一个例子:不完全是我要找的。我使用这些随机视频作为背景视频。我喜欢您提出的shuffle()函数,但基于php.net所说的,我的代码不起作用。请参阅更新的代码。问题是它使用了所有三个视频,不想在foreach中进行交互。我没有看到这个。我道歉。我不反对使用js,但更愿意坚持使用php。也许你们应该在会话中存储视频名称,而不是检查是否播放。