@ld6666666666666

Как реализовать вместо рандома очередь, 1, 2, 3, 4 и т.д.?

Как реализовать вместо рандома очередь, 1, 2, 3, 4.. или как реализовать после обновления странницы энное количество раз вывести определенную переменную по кругу?
Допусти мы обновляем страницу первый раз, получаем текст "НЕТ", а на десятый раз получим "ДА", и все это поочередно и по кругу!
Есть код, который рандомно выводит результат:

$if=array("НЕТ", "НЕТ", "НЕТ", "НЕТ", "НЕТ", "НЕТ", "НЕТ", "НЕТ", "ДА");
$rf=$if[array_rand($if)];
  • Вопрос задан
  • 172 просмотра
Решения вопроса 1
@WitER
Как вам уже писали - вам нужно хранить последний использованный ключ между запросами. В случае с тг ботом - вам подойдёт любое сервер-сайд решение: БД, файлы(но лучше не нужно), key-value хранилища.
Логика простая:
- попытались получить последний ключ для чата(или глобально)
- ключа нет - используем первый доступный
- ключ есть - увеличиваем его до следующего, проверяем существование в массиве и выходы за границы
- ключ вышел за нижнюю/верхнюю границу - меняем его значение на нижнюю границу
- элемент существует - выводим
- сохраняем ключ как последний использованный
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
New_Horizons
@New_Horizons
Бред:
где-то нужно хранить текущее "обновление". Проще всего в сессии. И с каждым обновлением страницы делать инкремент. И когда там будет 10 выводить "Да". Ну это сама идея.
Ответ написан
Комментировать
dollar
@dollar
Делай добро и бросай его в воду.
Зависит от конкретной задачи. Если это что-то типа рекламы, где точность не важна, то можно хранить счетчик в самом браузере в localStorage (через JavaScript).
var counter = localStorage.counter || 0; // загружаем
counter++;
if (counter >= 10) counter = 0;
localStorage.counter = counter; // сохраняем

console.log(counter == 9 ? "Да" : "Нет");
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
01 мая 2024, в 08:16
10000 руб./за проект
01 мая 2024, в 02:11
5000 руб./за проект
01 мая 2024, в 00:29
2000 руб./за проект