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

时间:2013-04-28 12:57:57

标签: php arrays

我有一个数组

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

我已将此数组存储在SESSION

$_SESSION["tokens"] = $tokens;

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

  if(in_array('token3',$_SESSION["tokens"])) {

    // remove it from the array

  }

那么,如何从'token3' array ??

中删除$_SESSION["tokens"]元素

3 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:0)

@Andrey Volk的array_search接受了这项工作。但是当您取消设置时,您可能需要array_value来求助该数组的键索引以避免离散。

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

答案 2 :(得分:0)

在php中有一个名为“unset()”的方法,用于取消设置变量,如名称所示......

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

要查找密钥,只需在数组中搜索值即可。有一个名为array_search的方法,它接受2个参数,第一个是要搜索的元素,第二个参数是要搜索的数组。在这种情况下,使用数组搜索来搜索令牌数组中的'token3',这是$ _SESSION ['tokens']:

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

好的,现在我们要删除元素的键,所以让我们使用unset方法删除元素:

unset( $_SESSION['tokens'][$key] );
希望有所帮助!