我想知道如何讓它變成3個變量從來沒有使用rand()相同的數字?如果變量等於變量變化一個變量
<?php
$myAd[1] = '<a href="http://www.pegor.com">Free PHP Tutorials</a>';
$myAd[2] = '<a href="http://www.lifestinks.info">Fast Facebook Proxy</a>';
$myAd[3] = '<a href="http://www.mozilla.org">Fastest and Secure Web Browser</a>';
$adId = rand(1,count($myAd));
$adId2 = rand(1,count($myAd));
$adId3 = rand(1,count($myAd));
if ($adId === $adId2) { $adId = ($adId2 - 1) }
if ($adId === $adId3) { $adId = ($adId3 - 1) }
if ($adId2 === $adId3) { $adId2 = ($adId3 - 1) }
echo $myAd[$adId];
echo '<br>';
echo $myAd[$adId2];
echo '<br>';
echo $myAd[$adId3];
?>
簡而言之,我想完成的是我的網站在左欄中顯示3種產品。每次用戶刷新時,他們都會改變。我一直遇到的問題是隨機數生成的變量中有兩個是相同的。我怎樣才能讓它到達他們總是在不同號碼上登陸的地方,以便一次顯示3種不同的產品,而不是2個相同和1個不同的產品?注意:我將添加更多項目到數組中,這只是一個測試腳本,直到我找出來。
退房['link'](http://stackoverflow.com/questions/16184116/random-show-20-of-60-php/16184189#16184189)和'列表()'施工。或['shuffle()'](http://php.net/manual/en/function.shuffle.php)。 – BlitZ 2013-04-26 08:21:33
嗯,我真的不明白它。 我的代碼工作,如果我刪除所有的if語句。 唯一的問題是有時候2個顯示的項目將是相同的。 是否沒有可能說這個變量是否等於這個變量減去或添加這個? – VampireNews 2013-04-26 08:25:36
你的代碼的主要問題是,有時(實際上,像2比3的機會)你會從1中扣除1,這將意味着0,並且$ myAd [0]中沒有任何內容。所以它會出錯。 – 2013-04-26 08:40:22