一个广告排序问题
PHP 2017/9/17 19:08:15 点击:不统计
$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面试题 >>