0

我在PHP文件中找到了这个随机页面脚本。当我在浏览器上单击刷新重新加载)时,很难刷新页面,这让我有点沮丧。每个随机页面都有一篇文章,有些页面有两张图片,但大多是一张图片。只有3篇文章。

问题是它需要2或3次单击才能刷新页面。没有按钮,它仅您单击浏览器所有浏览器)上的“重新加载”页面访问该站点时刷新页面。为了让它工作,它总是需要至少23 次点击才能刷新。

这是代码:

<?php
$pagesArray = array("article1.php", "article2.php", "article3.php");
$randNum = rand(0, count($pagesArray)-1);
echo $pagesArray[$randNum];
?> 

我也尝试修改脚本以使用“shuffle”

<?php
$pagesArray = array("article1.php", "article2.php", "article3.php");
shuffle($pagesArray);
echo $pagesArray[0];
?> 

并且还使用了“array_rand”

<?php
$pagesArray = array("article1.php", "article2.php", "article3.php");
array_rand($pagesArray);
echo $pagesArray[0];
?> 

有没有办法让代码变得更好?我只希望代码刷新不同的页面,而不是单击2 或 3 次以使其工作。我很感激任何关于如何使它正常工作的建议,或者任何例子都会让我看到全貌!

谢谢

4

1 回答 1

3

我对 PHP 不熟悉,但如果您问在数组中选择随机元素的哪种方法最快,我猜这是选项 1。生成随机整数需要恒定时间,并返回数组的元素通过数组索引也应该花费恒定的时间。我不知道 shuffle 是如何实现的,但我很确定获得一个随机数会比 shuffle 一个元素数组花费更少的时间。无论如何,如果您的数组中只有几个元素,那么用户应该不会有明显的差异。

至于为什么它需要 2 或 3 次刷新才能“工作”,我猜这可能是因为你只是多次返回同一个页面。如果您可以获取用户当前在(或已访问)的页面,则可以在选择一个之前从数组中删除该项目。

于 2012-06-19T17:52:26.817 回答