我有一个代码,每次访问页面时都会在数组中添加一个数字。这些数字存储在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;
}

09-18 00:10