PHP最近查看的脚本到会话数组



我得到了这段代码:

if(isset($_GET['viewevent'])) {
    if(count($_SESSION['e_lastviewed']) == 0) {
      $_SESSION['e_lastviewed'][0] = $_GET['viewevent'];
    } else if(!in_array($_GET['viewevent'], $_SESSION['e_lastviewed'])) {
      $_SESSION['e_lastviewed'][2] = $_SESSION['e_lastviewed'][1];
      $_SESSION['e_lastviewed'][1] = $_SESSION['e_lastviewed'][0];
      $_SESSION['e_lastviewed'][0] = $_GET['viewevent'];
    }
  }
  if($_GET['show']) {
    $_SESSION['show'] = $_GET['show'];
  } else if($_SESSION['show']=='') {
    $_SESSION['show'] = "all";
  }

它显然保存了最近查看的项目的ID,所以我需要把这些ID放入一个数组中。这能行吗?

$my_array = array($_SESSION['e_lastviewed'][2],$_SESSION['e_lastviewed'][1],$_SESSION['e_lastviewed'][0]);

我已经运行它,但它显示空白的结果(不确定如果这是由于我没有做正确或不完整的代码…我错过什么了吗?我不确定我是否完全理解我给的脚本…

try this:

  if ( !isset($_SESSION['e_lastviewed']) )
    $_SESSION['e_lastviewed'] = array();
  // alt: while(count($_SESSION['e_lastviewed']) > 2 ) {
  if(count($_SESSION['e_lastviewed']) > 2 ) {
    array_shift($_SESSION['e_lastviewed']); // drop off from 3
  array_unshift($_SESSION['e_lastviewed'],$_GET['viewevent']); // insert in the beginning
  if($_GET['show']) {
    $_SESSION['show'] = $_GET['show'];
  } else if($_SESSION['show']=='') {
    $_SESSION['show'] = "all";
  }

最新更新