如何优先做随机?

用户名

这是我的代码,例如:

<?php
     $arr = array(
          array("url" => "http://google.com", "priority" => 2),
          array("url" => "http://facebook.com", "priority" => 2),
          array("url" => "http://youtube.com", "priority" => 2),
          array("url" => "http://stackoverflow.com", "priority" => 1),
          array("url" => "http://kickass.to", "priority" => 1),
          array("url" => "http://twitter.com", "priority" => 1),
          array("url" => "http://example.com", "priority" => 1),
     );
?>

我希望系统在每次刷新时随机显示网址之一。我希望它显示较高的优先级而不是较低的优先级。对于横幅系统,我需要它,而优先级较高的系统需要支付更多,因此应该更多地看到它们。

怎么做?

桑兹

遍历所有横幅,并为每个横幅分配一个密钥(数字ID)。对于优先级较高的用户,请分配2个键(如果您希望更高的优先级,则可以分配更多键)。然后只需找到介于0(假设它是从零开始)和密钥总数之间的随机数:

rand(0, count($keys) - 1);

更新

这是一些代码:

// $arr = Your original array

$keys = array();
for ($i = 0; $i < count($arr); $i++) { // you can also use foreach here
     for ($u = 0; $u < $arr[$i]['priority']; $u++) {
         $keys[] = $i;      
     }
}

然后,要获取具有优先级的随机网址,请执行以下操作:

$arr[ $keys[ rand(0, count($keys) - 1) ] ];

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章