1

当用户访问我网站上的项目时,我有以下代码:

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

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

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

array[]有没有办法使用语法来做到这一点?我希望数组的最大长度为 3,如果大于 3,则旧的array[0]将消失,并被替换为array[1],array[1]将被替换为array[2]etc。

谁能想到一个不错的简短方法来做到这一点?

4

2 回答 2

2

array_slice 看起来可以解决问题(数组的“substr”):

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

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

于 2013-04-02T13:19:02.630 回答
2

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

$_SESSION['recent'][] = array("title"=>$page['current_item']['title'], "link"=>$_SERVER['REQUEST_URI']);
$_SESSION['recent'] = array_slice($_SESSION['recent'],-3);
于 2013-04-02T13:23:53.660 回答