php – 有概率的横幅旋转广告
发布时间:2020-12-13 17:03:13 所属栏目:PHP教程 来源:网络整理
导读:我有横幅广告,有多个观点,比如CPM系统. 例如: i have 3 banner:banner1 with 20.000 nr of viewsbanner2 with 10.000 nr of viewsbanner3 with 5.000 nr of views 在我的网站上,横幅必须出现在此位置(重新加载页面时): banner1 banner2 banner1 banner2 ba
我有横幅广告,有多个观点,比如CPM系统.
例如: i have 3 banner: banner1 with 20.000 nr of views banner2 with 10.000 nr of views banner3 with 5.000 nr of views 在我的网站上,横幅必须出现在此位置(重新加载页面时): banner1 banner2 banner1 banner2 banner3 如果观看次数较多,那么幻影的概率就会更高 我怎么能在PHP中这样做? 解决方法
首先,你的系统只是……愚蠢.它使具有大量视图的横幅永久化,而新创建的具有0或几个视图的横幅永远不会有机会被挑选,因此永远不会被实际看到…
话虽这么说,如果你有一个看起来像这样的数组: $banners = array ( 'banner1' => 1,'banner2' => 2,'banner3' => 4,'banner4' => 8,'banner5' => 16,); 你可以使用像这样的函数来称重选择一个横幅: function Probability($data) { if (is_array($data) === true) { $result = 0; $probability = mt_rand(1,array_sum($data)); foreach ($data as $key => $value) { $result += $value; if ($result >= $probability) { return $key; } } } return false; } 用法(测试@ CodePad.org或@ IDEOne): echo Probability($banners); // banner5 来自100次执行的样本: Array ( [banner5] => 41 [banner4] => 38 [banner3] => 10 [banner2] => 8 [banner1] => 3 ) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |