如何在数组中保留最多十个值?

时间:2012-05-09 06:39:29

标签: php arrays

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

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如何写

2 个答案:

答案 0 :(得分:0)

您的代码唯一缺少的是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以监控会话信息。

答案 1 :(得分:0)

我添加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']);