PHP会话数组

PHP会话数组,php,arrays,session,Php,Arrays,Session,我在存储数组的页面上有一个会话 <?php session_start(); if (!isset($_SESSION['pages'])) { $_SESSION['pages'] = array(); array_push($_SESSION['pages'],$description); } print_r($_SESSION['pages']); ?> 不,当我访问4页时,我希望它重写1页,只保留3条记录,这样看起来 array[0] => page4 array[1

我在存储数组的页面上有一个会话

<?php session_start();
if (!isset($_SESSION['pages'])) {
$_SESSION['pages'] = array();
array_push($_SESSION['pages'],$description);
}
print_r($_SESSION['pages']);
?>
不,当我访问4页时,我希望它重写1页,只保留3条记录,这样看起来

array[0] => page4
array[1] => page2
array[2] => page3

我不知道这是否可能

据我所知,如果创建一个新类,这是可能的。该类可以有一个列表和一个索引作为其成员

当您调用my_class_push时,您可以将元素推入当前索引并递增它。如果索引==3,则再次将其设置为0

这有意义吗


或者,您可以将索引存储在会话变量中,然后编写自己的推送函数,让会话的索引变量执行必要的赋值并更改会话索引变量。

它只是一个数组,因此非常简单

但是,如果有3个以上的元素,我会在开头添加一个元素,在结尾删除一个:

session_start();
if (!isset($_SESSION['pages']))
{
  $_SESSION['pages'] = array();
}

// add an element at the start
array_unshift($_SESSION['pages'], $description);

// remove an element at the end
if (count($_SESSION['pages']) > 3)
{
  array_pop($_SESSION['pages']);
}

print_r($_SESSION['pages']);
这样,您的订单总是相同的(上一次、上一次、2年前)

session_start();
if (!isset($_SESSION['pages']))
{
  $_SESSION['pages'] = array();
}

// add an element at the start
array_unshift($_SESSION['pages'], $description);

// remove an element at the end
if (count($_SESSION['pages']) > 3)
{
  array_pop($_SESSION['pages']);
}

print_r($_SESSION['pages']);