Я работаю над простым форумом для моего сайта. Я добавляю функцию, которая помечает непрочитанные сообщения + форумы с момента вашего последнего посещения.
Я по сути сохраняю дату последнего доступа к форуму с каждой учетной записью пользователя. Когда пользователь возвращается на сайт, запускается запрос для извлечения всех значений post_id и post_parent_forum, которые затем добавляются в массив, который хранится в переменной SESSION, ключом которого является post_id (который уникален) и значением быть идентификатором форума (который не будет уникальным, поскольку сообщения будут появляться на нескольких форумах).
В индексе форума я использую in_array () для каждого форума, чтобы увидеть, находится ли forum_id в массиве, если он есть, он будет помечен как «непрочитанный».
В списке потоков я использую array_key_exists (), чтобы увидеть, есть ли ключ для каждого идентификатора потока в массиве, если он есть, помечен как «непрочитанный».
Когда сообщение просматривается, элемент удаляется из массива с ключом, равным идентификатору потока.
Является ли этот метод разумным или я столкнусь с проблемами, если форум станет более популярным? Я обеспокоен выполнением 20 проверок array_key_exists () в каждом списке форумов. Это достаточно быстро?
На заметку ... могу ли я работать напрямую с сохраненным массивом SESSION или мне нужно присвоить его значение обычной переменной, удалить ключ, сбросить старый сеанс var и заново установить его с помощью обновленный массив?