正在从PHP数组中删除的项

正在从PHP数组中删除的项,php,arrays,session,Php,Arrays,Session,我有一个自定义的post类型,名为附件。在这种自定义帖子类型的帖子上,我将该帖子的ID添加到数组中。当我是一个a帖子时,var_dump($_SESSION['recently_viewsed'])在数组中显示post ID,但是,当我返回页面时,它将从数组中删除 澄清: 我访问/accessories,此时$\u会话['recently\u viewsed']是空的,因为我还没有进入帖子 然后我访问post/accessories/post-1,它的postid为643。Avar_dump(

我有一个自定义的post类型,名为
附件
。在这种自定义帖子类型的帖子上,我将该帖子的ID添加到
数组中。当我是一个a帖子时,
var_dump($_SESSION['recently_viewsed'])
在数组中显示
post ID
,但是,当我返回页面时,它将从数组中删除

澄清:

  • 我访问
    /accessories
    ,此时
    $\u会话['recently\u viewsed']
    是空的,因为我还没有进入帖子
  • 然后我访问post
    /accessories/post-1
    ,它的post
    id
    为643。A
    var_dump($_SESSION['recently_viewsed'])返回
    数组(1){[0]=>int(643)}
  • 现在我回到
    /accessories
    ,当我做
    var\u dump($\u SESSION['recently\u viewsed'])
    ,它返回
    数组(0){}
不确定为什么要将其从阵列中删除

我的代码:

<?php

session_start();

// array that contains ID
$recently_viewed_array = array();

// store the array in a session variable
$_SESSION['recently_viewed'] = $recently_viewed_array;


// Check if the session variable exists
if(!isset($_SESSION['recently_viewed'])){
  // if it doesn't, create an empty array
  $_SESSION['recently_viewed'] = array();
}

if ( is_singular ( 'accessories' ) ):
  global $post;
  $current_post_id = $post->ID;

  if ( !in_array ($current_post_id, $_SESSION['recently_viewed']) ):
    $_SESSION['recently_viewed'][] = $current_post_id;
  endif;

endif;


var_dump($_SESSION['recently_viewed']);

?>

因为您总是将
$recently\u viewsed\u array
设置为空数组,而您根本没有将其存储在会话中…!?好的,现在您将数组存储在会话中,但仍然总是将其初始化为空数组!您的逻辑需要是:如果且仅当该数组在会话中根本不存在时,将其初始化为空数组。然后向其中添加一项。然后展示它。@deceze-我想我已经拿到了。只需删除行
$recently\u viewsed\u array=array()
$\u会话['recently\u viewed']=$recently\u viewed\u数组:)谢谢你的指导