Php 是否有方法取消设置除所需变量之外的每个会话变量?

Php 是否有方法取消设置除所需变量之外的每个会话变量?,php,session,Php,Session,我有一个非常基本的购物车设置,我的“clear cart”函数运行以下PHP,目的是在不丢失需要保留的会话数据的情况下清除购物车(登录用户名/电子邮件/等等) 我的代码可以满足我的需要(只是玩弄PHP),但它似乎不是很有效,我想知道是否有一种更简单的方法可以解除除特定会话变量之外的所有问题。如果您只想保留2个变量,而想删除9个变量,那么除了列出所有要删除的内容外,似乎还必须有一种替代方法 一种取消设置所有内容(不包括保留/持久的用户数据)的方法,无论是否订购了某些内容 <?php ses

我有一个非常基本的购物车设置,我的“clear cart”函数运行以下PHP,目的是在不丢失需要保留的会话数据的情况下清除购物车(登录用户名/电子邮件/等等)

我的代码可以满足我的需要(只是玩弄PHP),但它似乎不是很有效,我想知道是否有一种更简单的方法可以解除除特定会话变量之外的所有问题。如果您只想保留2个变量,而想删除9个变量,那么除了列出所有要删除的内容外,似乎还必须有一种替代方法

一种取消设置所有内容(不包括保留/持久的用户数据)的方法,无论是否订购了某些内容

<?php
 session_start();
 unset
(
    $_SESSION['pcode1'],  
    $_SESSION['uprice1'],  
    $_SESSION['quantity1'],
    $_SESSION['pcode2'],  
    $_SESSION['uprice2'], 
    $_SESSION['quantity2'],
    $_SESSION['pcode3'], 
    $_SESSION['uprice3'],  
    $_SESSION['quantity3'] 
); 
header('Location: cart.php'); 
exit; 

?>

Tl;博士
是否有一种方法可以取消设置除特定变量之外的所有会话数据。

从外观上看,取消设置特定会话变量集的唯一方法是手动取消设置这些变量

另一种选择是存储您想要的两个变量,然后运行
unset($\u SESSION)
,然后用旧数据重新设置新变量。例如:

session_start();

$tmp1 = $_SESSION['variable1'];
$tmp2 = $_SESSION['variable2']

unset($_SESSION); 

$_SESSION['variable1'] = $tmp1;
$_SESSION['variable2'] = $tmp2;

演示:

使用循环和if语句。就这样。?我不理解响应,我不想取消设置整个会话,我想保留特定变量并取消设置其他所有内容。取消设置您不需要的
$\u会话
值?@BrandonWhite完全有效,如果您查看我的代码就是我所做的,我想知道的是它是否可以反转?你可以选择不需要取消设置的变量,而不是取消设置每个你不想要的变量。基本上,我在前面告诉OP的,简而言之,但决定删除那个评论(一定是他们的意见)。现在证据已经不在布丁里了。如果我还记得的话,它是这样的:“将会话数组分配给变量,并在数组()中使用
操作符”。这是一个不错的方法,谢谢!还有@Fred ii-从未看到过你的评论抱歉,不太确定告诉我你删除的评论的意义是什么?@Spooler,这条评论一直存在。当我看不到关于它的投票或反馈时,我只是删除它。很多时候,这可能是因为这不是他们想要的,我为其他评论让路,以免占用评论区。@Fred ii-你可以得到我一半的分数,或者一块饼干,你的电话会完全有效,这不是我想到的。不过,我更喜欢达贡的回答,谢谢!
foreach($_SESSION as $kill=>$v){
    if (!in_array($kill,ARRAY OF WANTED KEYS))
      {unset ($_SESSION[$kill]);}
    }