如何在数组中保持十个值的最大计数


How to keep a maximum count of ten values in an array?

每次

用户访问页面时,页面URL都会存储到数组会话中。我只想在数组中有 10 个元素。这样 10 个元素将保存 10 个最近访问的页面 URL。这是我的代码:

if (empty($_SESSION['page'])) {
     $_SESSION['page'] = array_fill(0,10,'');
 }
 function trackPage($url) {
     array_unshift($_SESSION['page'],$url);
    array_pop($_SESSION['page']);
 }

trackPage($_SERVER['REQUEST_URI']);

并告诉MW如何写

您的代码唯一缺少的是 session_start(),即:

<?php
session_start();
if (empty($_SESSION['page'])) {
     $_SESSION['page'] = array_fill(0,10,'');
 }
 function trackPage($url) {
     array_unshift($_SESSION['page'],$url);
    array_pop($_SESSION['page']);
 }

trackPage($_SERVER['REQUEST_URI']);
var_dump($_SESSION['page']);
?>

我只添加了var_dump来监控会话信息。

我添加了if(array_search($url, $_SESSION['page'])=== false)这段代码以避免多次重复输入

session_start();
if (empty($_SESSION['page'])) {
     $_SESSION['page'] = array_fill(0,10,'');
 }
 function trackPage($url) {
     if(array_search($url, $_SESSION['page'])=== false){
         array_unshift($_SESSION['page'],$url);
        array_pop($_SESSION['page']);
     }
 }

trackPage($_SERVER['REQUEST_URI']);
var_dump($_SESSION['page']);