显示数组中的唯一链接

时间:2013-03-21 00:21:19

标签: php arrays

我有一个显示数组随机横幅的函数:

//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);每个只能展示一次。

函数rand_rek()位于func.php中,它包含在ads.php中,其余代码也包含在内。

1 个答案:

答案 0 :(得分: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