2013-03-21 75 views
0

獨特的鏈接我有一個顯示來自陣列隨機橫幅功能:顯示來自陣列

//func.php 
function rand_rek($rek_array){ 
$numberOfBanners = count($rek_array); 
$numberOfBanners = $numberOfBanners - 1; 
$randomBanner = rand(0,$numberOfBanners); 
$rek = $rek_array[$randomBanner]; 
return $rek; 
} 

我有$reklamas陣列,包含3個橫幅:

//ads.php 
$reklamas = array($rek1, $rek2, $rek3); 

如果$ _GET [「NOA 「]心不是真的,我想更多的橫幅添加到$ reklamas陣列:

if (!isset($_GET["noa"])) 
array_push($reklamas, $rek_adc1, $rek_adc2, $rek_adc3, $rek_adc4); 

而且我要隨機顯示其中一個橫幅×時間S:

for ($i=0;$i<$banneri;$i++) { 
    echo rand_rek($reklamas); 
    } 

問題: ,因爲他們想要array($rek1, $rek2, $rek3);, 而這些array_push($reklamas, $rek_adc1, $rek_adc2, $rek_adc3, $rek_adc4);可以各自顯示只有1次,這些可重複多次。

函數rand_rek()在func.php中,它包含在ads.php中,代碼的其餘部分在哪裏。

+0

儘管我沒有正確理解你的問題,但請檢查['array_rand'](http://php.net/manual/en/function.array-rand.php)。當我看着'array_push'之類的東西時,該死的PHP就是一個廢話。 – moonwave99 2013-03-21 00:27:50

+0

那麼究竟是什麼問題呢?除非隨機選擇的橫幅恰好是4個額外橫幅之一,否則您希望橫幅重複「$ banneri」次?我猜你叫'rand_rek($ reklamas)'? – lxop 2013-03-21 00:28:04

+0

是的@lxop是正確的 – Treat 2013-03-21 14:17:35

回答

0

我想你可能要去這個問題都錯了,但在任何情況下,解決辦法是

function rand_rek($rek_array){ 
    $numberOfBanners = count($rek_array); 
    $numberOfBanners = $numberOfBanners - 1; 
    $randomBanner = rand(0,$numberOfBanners); 
    $rek = $rek_array[$randomBanner]; 
    return [$randomBanner, $rek]; 
} 

list($bannerNum, $banner) = rand_rek($reklamas); 
if ($bannerNum < 3) { 
    $repeats = $x; 
} else { 
    $repeats = 1; 
} 

for ($i=0;$i<$repeats;$i++) { 
    echo $banner; 
} 

運行循環之前以檢索旗幟,檢查它的索引。我還使用了您在文本中提到的值$x,但不是在您的代碼中。