2

我正在array_rand()尝试随机化 3 个链接。我基本上希望在刷新页面时显示一个不同的链接。这是我到目前为止所尝试的。

$links = '<a href="http://google.com">google</a>, <a href="http://facebook.com">facebook</a>, <a href="http://yahoo.com">yahoo</a>';
$links_to_array = preg_split("/ ,/", $links );
$randomize = array_rand($link_to_array, 1);
echo ($links_to_array[$randomize]);

所以基本上当我刷新它似乎工作但有时所有链接都会同时出现。你可以自己试一试,让我知道我需要修复的地方。

非常感谢您的参与。

4

3 回答 3

2

它应该是

$links_to_array = preg_split("/, /", $links, -1, PREG_SPLIT_NO_EMPTY);

更新:

$links = array('<a href="http://google.com">google</a>', 
               '<a href="http://facebook.com">facebook</a>', 
               '<a href="http://yahoo.com">yahoo</a>');


echo $links[rand(0,2)]; // instead of 2 you can also write count($links)
于 2013-02-24T10:51:47.193 回答
1

您正在使用 preg_split,逗号前有一个空格,而不是空格前的逗号。改为使用explode(',', $links)

于 2013-02-24T10:51:59.430 回答
1
$links = '<a href="http://google.com">google</a>, <a href="http://facebook.com">facebook</a>, <a href="http://yahoo.com">yahoo</a>';
$links_to_array = explode(", ", $links);
$randomize = array_rand($links_to_array, 1);
echo ($links_to_array[$randomize]);
于 2013-02-24T10:52:32.597 回答