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);

我想显示一个随机横幅 x 次:

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 中,其余代码在哪里。

4

1 回答 1

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在文本中但未在代码中提到的值。

于 2013-03-21T19:56:18.230 回答