网站制作学习网PHP→正文:一个广告排序问题
字体:

一个广告排序问题

PHP 2017/9/17 19:08:15  点击:不统计

forasp.cn
 $yingguang= array(

            'rate' =>3,
            'data'=>array("硬广0","硬广1","硬广2","硬广3","硬广4"),
            'index'=>0
            );
$ruanguang= array(
            'rate'=>2,
            'data'=>array("软广0","软广1","软广2","软广3","软广4"),
            'index'=>0
            );
 
 
 
$ad = array($yingguang,$ruanguang);
$ad_n_count = 1 ;
//$ad_count = count($yingguang)+count($ruanguang);
 
$ad_index = 0 ;
$neirong = range(0,100);
//计算广告
function p($n,&$ad,&$ad_index,&$ad_n_count){
    echo "第".$n."个广告:";
    $ad_count = count($ad);
    //计算第几次的循环
    $use_ad = $ad[$ad_index];
    $fact_ad = $use_ad['data'][$use_ad['index']];
    $ad[$ad_index]['index']++;
    if($ad_n_count >=$use_ad['rate']){
        $ad_index++;
        $ad_n_count = 1 ;
    }else{
        $ad_n_count++;
    }
    $ad_index = $ad_index % $ad_count;
 
    $ad[$ad_index]['index'] = $ad[$ad_index]['index'] % count($use_ad['data']);
 
 
    echo "广告索引:".$ad_index."变更前".$use_ad['index'].",后广告内索引".$ad[$ad_index]['index'];
    echo $fact_ad.PHP_EOL;
 
}
 
//开始
$jiange = 3;//每三个一个广告
foreach($neirong as $k=>$v){
    echo "内容".$v.PHP_EOL;
    $k = $k+1;
    if(0 == $k% $jiange && $k>0 ){
        //获取第几个广告
        $n  = $k / $jiange;
        p($n,$ad,$ad_index,$ad_n_count);
    }
 
 
}

·上一篇:PsySH 命令行php环境 >>    ·下一篇:坑人的PHP面试题 >>
推荐文章
最新文章