我有一个代码,每次访问页面时都会在数组中添加一个数字。这些数字存储在cookie中,以后再获取。
我只想在数组中保留5个最新数字。
如果数组已满(5个项目),并且必须添加一个新数字,则必须删除最早的数字,并且必须保留最新的项目
这是我所拥有的:
$lastviewedarticles = array();
if (isset($_COOKIE["viewed_articles"]) ) {
$lastviewedarticles = unserialize($_COOKIE["viewed_articles"]);
}
if (!in_array($articleid, $lastviewedarticles)){
$lastviewedarticles[] = $articleid;
}
setcookie("viewed_articles", serialize($lastviewedarticles));
最佳答案
我首先认为,您需要获取数组length,然后如果length>或等于5,则删除第一个元素,然后将元素添加到数组的末尾。
if (!in_array($articleid, $lastviewedarticles)){
$count = count($lastviewedarticles);
if($count>=5)
array_shift($lastviewedarticles);
$lastviewedarticles[] = $articleid;
}