将数组限制为5个项目

Jon*_*n87 35 php arrays

我有一个代码,每次访问页面时都会向数组添加一个数字.数字存储在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));
Run Code Online (Sandbox Code Playgroud)

Nir*_*ara 170

array_slice返回数组的切片

array_slice($array, 0, 5) // return the first five elements
Run Code Online (Sandbox Code Playgroud)

  • 从文档中:*如果数组短于长度,那么将仅显示可用的数组元素。* (2认同)

sil*_*lly 7

使用array_splice和array_unique来获取5个唯一的数组值

array_splice(array_unique($lastviewedarticles), 0, 5);
Run Code Online (Sandbox Code Playgroud)


Ale*_*eka 6

首先,我认为您需要获取数组length,然后如果length>或等于5,则删除第一个元素,然后将元素添加到数组的末尾。

if (!in_array($articleid, $lastviewedarticles)){
    $count = count($lastviewedarticles);
    if($count>=5)
        array_shift($lastviewedarticles);
    $lastviewedarticles[] = $articleid;
}
Run Code Online (Sandbox Code Playgroud)