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


Keeping track of the 3 most recently visited items using sessions

当用户访问我网站上的一个项目时,我有这样的代码:

$_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]取代,等等。

有谁能想出一个简短的方法来做这件事吗?

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

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

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

$_SESSION['recent'] = array_slice($_SESSION['recent'],0,3)
http://php.net/manual/en/function.array-slice.php