Php 具有刷新随机页面的问题

Php 具有刷新随机页面的问题,php,html,Php,Html,我在PHP文件中找到了这个随机页面脚本。当我在浏览器上单击刷新(重新加载)时,很难刷新页面,这让我有点沮丧。每个随机页面都有一篇文章,有些页面有两张图片,但大部分是一张图片。只有3篇文章 问题是需要点击2次或3次才能刷新页面。有否按钮,当您单击浏览器上的页面(所有浏览器)或访问站点时,它仅刷新页面。要使其工作,通常至少需要单击2次或3次才能刷新 代码如下: <?php $pagesArray = array("article1.php", "article2.php", "article3

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

问题是需要点击2次或3次才能刷新页面。有按钮,当您单击浏览器上的页面所有浏览器)或访问站点时,它仅刷新页面。要使其工作,通常至少需要单击2次或3次才能刷新

代码如下:

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

我还尝试将脚本修改为使用“shuffle”


也可用于“数组”


有没有办法让代码变得更好?我只想让代码刷新不同的页面,而不是单击2或3次,使其正常工作。我感谢任何建议,如何使其正确工作,或任何例子将感谢我看到完整的图片


谢谢

我不熟悉PHP,但是如果你问在数组中选择随机元素的哪种方法最快,我猜这是选项1。生成随机整数需要固定的时间,通过数组索引返回数组的元素也需要固定的时间。我不知道洗牌是如何实现的,但我很确定获得一个随机数比洗牌一个元素数组花费的时间要少。不管是什么情况,如果数组中只有几个元素,那么对用户来说应该没有明显的区别


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

我不熟悉PHP,但是如果您询问在数组中选择随机元素的哪种方法最快,我想这是选项1。生成随机整数需要固定的时间,通过数组索引返回数组的元素也需要固定的时间。我不知道洗牌是如何实现的,但我很确定获得一个随机数比洗牌一个元素数组花费的时间要少。不管是什么情况,如果数组中只有几个元素,那么对用户来说应该没有明显的区别


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

您已经展示了实现某项目标的三种方法,但没有真正的问题或需要。什么不起作用?考虑到它们都应该工作,上面的任何一个有什么问题吗?Hi g.d.谢谢你的回复!问题主要是刷新很困难,需要2到3次点击才能正常工作。当我在第一个示例($randNum)上单击Refresh时,对于第二个示例(shuffle),它也会这样做。但对于最后一个示例(array_rand),它不起作用可能是我写错了当您单击一次并等待时会发生什么?它是超时还是最终返回结果?性能问题(您所描述的)不太可能是由这些实现之一引起的。是否
rand
shuffle
只是连续两次返回相同的结果?您正在测试的数组中是否只有3项?array_rand不会随机化传递的数组,但会返回一个包含随机键的数组。您已经展示了实现某项功能的三种方法,但没有真正的问题或需要。什么不起作用?考虑到它们都应该工作,上面的任何一个有什么问题吗?Hi g.d.谢谢你的回复!问题主要是刷新很困难,需要2到3次点击才能正常工作。当我在第一个示例($randNum)上单击Refresh时,对于第二个示例(shuffle),它也会这样做。但对于最后一个示例(array_rand),它不起作用可能是我写错了当您单击一次并等待时会发生什么?它是超时还是最终返回结果?性能问题(您所描述的)不太可能是由这些实现之一引起的。是否
rand
shuffle
只是连续两次返回相同的结果?您正在测试的数组中是否只有3个项目?array_rand不会随机化传递的数组,但会返回一个包含随机键的数组。嗨,志浩,感谢您的回复和解释!我的数组有3篇文章,当我单击它时,它不会做任何事情。我必须点击它两次或第三次,以便随机文章出现。如果您提到“如果您可以获取用户当前所在(或已访问)的页面,您可以在选择页面之前从阵列中删除该项目”,如果我不理解您的意思,我深表歉意。您的意思是我必须从阵列中取出一篇文章?让我看看我是否正确理解您的意思。您是否有一个带有按钮的页面,如果您选择该按钮,它会显示一个随机的新页面(取自数组)?当它显示一篇新文章时,按钮是否仍在那里供用户单击?此外,它是否总是需要至少两次或三次点击才能工作?第一次尝试时它能工作吗?嗨,志浩,没有按钮,只有当你在浏览器上单击“重新加载页面”或访问网站时,它才会刷新页面。是的,至少需要2分钟
<?php
$pagesArray = array("article1.php", "article2.php", "article3.php");
shuffle($pagesArray);
echo $pagesArray[0];
?> 
<?php
$pagesArray = array("article1.php", "article2.php", "article3.php");
array_rand($pagesArray);
echo $pagesArray[0];
?>