这是我的代码,例如:
<?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),
);
?>
我希望系统在每次刷新时随机显示其中一个网址。我希望它显示较高优先级的次数多于较低优先级的次数。我需要它用于横幅系统,并且具有较高优先级的支付更多,所以他们应该被更多地看到。
怎么做?
您可以根据项目的优先级将项目添加到数组中。如果某项的优先级为 2,则可以将其添加到数组中两次。然后你可以从数组中随机取出一个项目。
// CREATE A NEW ARRAY TO HOLD ALL OF THE BANNERS
$banner_array = array();
// LOOP THROUGH EACH ITEM IN THE ARRAY CURRENTLY HOLDING THE BANNERS
foreach ($arr AS $banner) {
// FOR EACH NUMBER IN THE PRIORITY, ADD THE ITEM TO OUR NEW ARRAY
// google.com, facebook.com, youtube.com WILL BE ADDED IN TWICE
for ($i = 0; $i < $banner['priority']; $i++) {
$banner_array[] = $banner['url'];
}
}
// COUNT THE TOTAL NUMBER OF ITEMS IN OUR ARRAY
// WE WILL PICK OUT A NUMBER BETWEEN ZERO AND THIS NUMBER (MINUS 1)
$item_count = count($banner_array) - 1;
// ONCE WE HAVE A RANDOM NUMBER, WE CAN ACCESS THAT ITEM OF THE ARRAY
print "RANDOM URL: ".$banner_array[get_random_item($item_count)];
// THIS FUNCTION PICKS A NUMBER BETWEEN ZERO AND THE NUMBER OF ITEMS IN OUR ARRAY
function get_random_item($item_count) {
mt_srand(microtime() * 1000000);
$random_number = rand(0, $item_count);
return $random_number;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)