@KeeVeeG

Как эффективнее перемешать массив?

Имеется каталог с 5к картинок, случайным образом выводится только малая их часть. Можно как то по другому организовать случайный выбор файлов? Или создание и перемешивание такого большого массива не сильно сказывается на производительности сервера?
$memes = scandir('media/memes');
shuffle($memes);
$strarr = array();
for($i=0;$i<=60;$i++){
	array_push($strarr,'<div class="grid-item">
      <img class="grid-img hoverable" src="/media/memes/'.$memes[$i].'">
    </div>');
}
$str=implode($strarr);
echo($str);
  • Вопрос задан
  • 606 просмотров
Решения вопроса 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Тут код и рандомим один за другим символы в REGEX-маске. До тех пор, пока не будет пустой возврат.
Из предыдущей выборки - берём случайный вариант.

НО! Лучше - это делать через файл-список (который содержит уже весь dirlist).
Это сэкономит операции на чтение с диска и продлит срок его службы.
PS: Подсказка!: файл dirlist можно читать сразу со случайного места! и смещаться на начало строки!
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@drKox
Запускать 2 рандома.
1 с директориями от 1-5. Записать /бд /csv/ соответствие порядковому номеру и рандомиь уже цифры, подменяя их на id записи / строки => читать конкретную запись.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы