0

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

<?php session_start();
if (!isset($_SESSION['pages'])) {
$_SESSION['pages'] = array();
array_push($_SESSION['pages'],$description);
}
print_r($_SESSION['pages']);
?>

有没有办法在重写第一个数组之前将数组限制为只有 3 个描述。例如

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

不,当我访问第 4 页时,我希望它重写 1 并只保留 3 条记录,所以它看起来像

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

我不知道这是否可能!

4

2 回答 2

0

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

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

那有意义吗?

或者,您可以将索引存储在会话变量中,然后编写自己的推送函数,该函数将获取会话的索引变量并进行必要的分配并更改会话索引变量。

于 2012-09-18T22:04:17.883 回答
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 前)。

于 2012-09-18T22:06:51.277 回答