如何从存储在SESSION中的数组中删除一个元素


How to remove an element from an array stored in SESSION

我有一个数组

$tokens = array('token1','token2','token3','token4','token5','token6');

我已经将这个数组存储在SESSION

$_SESSION["tokens"] = $tokens;

现在,我需要从这个数组中删除一个元素

  if(in_array('token3',$_SESSION["tokens"])) {
    // remove it from the array
  }

那么,我如何从$_SESSION["tokens"]数组中删除'token3'元素??

$key = array_search( 'token3', $_SESSION['tokens'] );
unset( $_SESSION['tokens'][$key] );

@Andrey Volk的array_search获得了这份工作。但是当您取消设置时,您可能需要array_value返回该数组的键索引,以避免离散。

$_SESSION['tokens'] = array_values($_SESSION['tokens']);

php中有一个名为"unset()"的方法,用于取消变量的设置…

当你在$_SESSION变量中使用数组时,你需要找到你想要删除的元素的键…

查找键,只需在数组中搜索一个值。有一个叫做array_search的方法,它有两个参数,第一个是要搜索的元素,第二个参数是你要搜索的数组。在本例中,使用数组搜索在$_SESSION['tokens']的token数组中搜索'token3':

$key = array_search( 'token3', $_SESSION['tokens'] );

好了,现在我们有了要删除的元素的键,那么让我们使用unset方法来删除元素:

unset( $_SESSION['tokens'][$key] );

希望有帮助!