Skima
Новичок
Оптимизация ротатора картинок
Приветствую. Поставил себе задачу сделать ротатор картинок, который не покажет за один день одному и тому же пользователю одну и ту же картинку дважды. Может быть когда-нибудь мутирую его в ротатор баннеров.
Возник вопрос реализации выбора рандомной картинки. Делаю так:
То есть при каждой загрузке страницы с баннером скрипт проходит по всему массиву названий картинок и смотрит, какие уже показывал. Если показал все, бездельничает, если нет, начинает рандомить случайные номера в этом массиве, пока не найдет не показанную картинку. Если картинок относительно немного, это не будет тормозить, а будет ли это тормозить, если картинок и запросов много? В общем, какие можете дать советы по ускорению или, возможно, есть другие пути реализации?
Приветствую. Поставил себе задачу сделать ротатор картинок, который не покажет за один день одному и тому же пользователю одну и ту же картинку дважды. Может быть когда-нибудь мутирую его в ротатор баннеров.
Возник вопрос реализации выбора рандомной картинки. Делаю так:
PHP:
function show_banner($dir, & $files)
{
$attempts = 0;
for($i=0; $i<count($files); $i++)
{
if($files[$i]["shown"] == 1)
$attempts++;
}
if($attempts == count($files))
echo "Вы посмотрели все баннеры";
else
{
$id = rand(0, count($files)-1);
if($files[$id]["shown"] != 1)
{
echo "<img src=".$dir.$files[$id]["name"]."><br>".$files[$id]["name"]."<br>";
$files[$id]["shown"] = 1;
return true;
}
else
show_banner($dir, $files);
}
return false;
}