使用会话跟踪最近访问的3个项目

时间:2013-04-02 13:14:36

标签: php arrays

当用户访问我网站上的某个项目时,我会收到以下代码:

$_SESSION['recent'][] = array("title"=>$page['current_item']['title'], "link"=>$_SERVER['REQUEST_URI']);

将项目及其URI的记录存储在会话变量中。

但是,我只想存储最近访问过的3个项目。

有没有办法使用array[]语法执行此操作?我希望数组的最大长度为3,如果大于3,则旧array[0]将消失,并由array[1]替换,array[1]将替换为{{ 1}}等。

有人能想出一个很好的简短方法吗?

2 个答案:

答案 0 :(得分:2)

array_slice看起来可以做到这一点(数组的'substr'):

$_SESSION['recent'] = array_slice($_SESSION['recent'],0,3)

http://php.net/manual/en/function.array-slice.php

答案 1 :(得分:2)

您可以使用array_slice()只保留最后3个元素:

$_SESSION['recent'][] = array("title"=>$page['current_item']['title'], "link"=>$_SERVER['REQUEST_URI']);
$_SESSION['recent'] = array_slice($_SESSION['recent'],-3);