2013-07-04 54 views
2

我试图使用代码波纹管在一个新的网页刷新呼应随机的网址,但我不能让它工作显示,当我的网页已经被刷新随机链接

<?php 
$url=array(
'http://www.google.com', 
'http://www.in.gr', 
'http://www.yahoo.gr' 
); 
$random=rand(1,count($url)); 
echo $url[$random]; 
?> 

谢谢所有!

+0

究竟是什么问题? – GolfWolf

+0

你是什么意思这代码没有错? – Baba

+0

@ user2180613有**有一件事是错误的。查看所有答案! – DaGardner

回答

0

我没有试过,但它应该工作...我希望..

<?php 
$url=array(
'http://www.google.com', 
'http://www.in.gr', 
'http://www.yahoo.gr' 
); 

$rand = rand(0, 2); 

echo $url[$rand]; 
+0

这与她所拥有的没有什么不同。 – Brad

+0

@Brad你是什么意思?它的工作原理或我必须错过的问题 – 2013-07-04 18:16:33

+0

您的上次修改解决了问题。 – Brad

0

数组索引从0开始,以长度为1的结束。 http://php.net/manual/en/function.rand.php 第一个值是最小值。 第二个值是数组的最后一个索引的最大值。

<?php 
$url=array(
'http://www.google.com', 
'http://www.in.gr', 
'http://www.yahoo.gr' 
); 
$random=rand(0,count($url)); 
echo $url[$random]; 
?> 
2

更换

$random=rand(1,count($url)); 

随着

$random = mt_rand(0, count($url) - 1); 
0

更改为:

$random=rand(0, count($url)-1); 

与您的代码问题是你设定的最低为1,最高为网址总数。数组基于零,因此您需要0作为最小值,并且您需要最大值count($url)-1。在这种情况下,您有3个网址,但第三个网址在$url[2]而不是$url[3]

0

试试这个

<?php 
    $url = array(
    'http://www.google.com', 
    'http://www.in.gr', 
    'http://www.yahoo.gr' 
); 
    $random = array_rand($input); 
    echo $url[$random]; 
?> 
0

数组的第一个关键是0,所以改变rand函数这样:

rand(0,count($url) - 1); 
0

嗯,首先改变这种:

$random=rand(1,count($url)); 

$random=rand(0,count($url) - 1); 

数组起始索引为0