Я использую PHP, и я пытаюсь сохранить массив последних 10 сообщений в Wordpress через массив $_SESSION
. Я знаю, что могу добавить к последнему сообщению идентификатор так:PHP - как сохранить последнюю десятку в массиве?
$_SESSION['recently_viewed_posts'][] = $post->ID;
И точно так же я мог бы следовать, что команда с чем-то вроде этого, чтобы удалить из них больше, чем 10:
if(sizeof($_SESSION['recently_viewed_posts']) > 10)
{
array_shift($_SESSION['recently_viewed_posts']);
}
Однако это не будет хорошо работать, если пользователь перезагружает тот же пост несколько раз, вы могли бы в конечном итоге с чем-то вроде:
Array
(
[recently_viewed_posts] => Array
(
[0] => 456
[1] => 456
)
)
желательное поведение:
- Последние 10 почтовые идентификаторы будут иметь в массиве
- Если посещаемой пост уже в массиве, он будет двигаться в начало или конец массива
- Если размер массива 10 элементов, а также новый 11-й пост, будет удален старый идентификатор сообщения и добавлен новый идентификатор сообщения
Меня не волнует, какая сторона массива (начало или конец) новая сообщения продолжаются, если они согласуются. Мне все равно, какие ключи массива.
Каков наилучший способ для этого?
Я пробовал искать похожие вопросы, но не придумал ничего полезного, поэтому прошу прощения, если это обман.
Я просто думал о подобном :) +1 – diEcho