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