2013-03-21 78 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,但不是在您的代码中。