Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php从数组中取消设置与preg_match function匹配的键_Php_Arrays_Session - Fatal编程技术网

php从数组中取消设置与preg_match function匹配的键

php从数组中取消设置与preg_match function匹配的键,php,arrays,session,Php,Arrays,Session,我正在将用户登录详细信息存储在$\会话上,现在我正在尝试删除唯一一个以fb\开头的会话,这是facebook会话数据 获取此阵列输出: 我已经创建了下面的函数,它只会在用户单击注销按钮时调用 在这个函数中,我编写了unset代码来清除facebook密钥名称以fb_uu开头,但unset在我的数组中不起作用。我仍然从数组中获取所有密钥 任何想法。为什么它不起作用或者我做错了什么 谢谢。问题在于您没有直接修改$\u会话数组。相反,您只是在更改创建的副本。只需从$\u会话中取消设置变量,即可将其正确

我正在将用户登录详细信息存储在$\会话上,现在我正在尝试删除唯一一个以fb\开头的会话,这是facebook会话数据

获取此阵列输出: 我已经创建了下面的函数,它只会在用户单击注销按钮时调用

在这个函数中,我编写了unset代码来清除facebook密钥名称以fb_uu开头,但unset在我的数组中不起作用。我仍然从数组中获取所有密钥

任何想法。为什么它不起作用或者我做错了什么


谢谢。

问题在于您没有直接修改$\u会话数组。相反,您只是在更改创建的副本。只需从$\u会话中取消设置变量,即可将其正确删除

public function logout(){

    // Unset facebook session data
    foreach($_SESSION as $key => $value) {
      if(preg_match('/fb_(.*)/s', $key)) {
        unset($_SESSION[$key]);
      }
    }

}
另外,你不需要正则表达式。只要使用相同的结果。另外,由于您忘记了字符串anchor^的开头,因此在查找字符串开头的“fb_u2;”时,这比正则表达式效果更好


问题是您没有直接修改$\u会话数组。相反,您只是在更改创建的副本。只需从$\u会话中取消设置变量,即可将其正确删除

public function logout(){

    // Unset facebook session data
    foreach($_SESSION as $key => $value) {
      if(preg_match('/fb_(.*)/s', $key)) {
        unset($_SESSION[$key]);
      }
    }

}
另外,你不需要正则表达式。只要使用相同的结果。另外,由于您忘记了字符串anchor^的开头,因此在查找字符串开头的“fb_u2;”时,这比正则表达式效果更好


如果您打印$\u会话,它很清楚,为什么不取消设置,因为您在$readsession中取消设置了:$readsession如果您打印$\u会话,它很清楚,为什么不取消设置,因为您在$readsession中取消设置了:$readsession我们已经在那里6分钟了:同时为了使正则表达式正确,OP还必须添加锚点^start@Rizier123我在手机上,所以我在写答案时看不到评论,但你是对的,你是第一个。至于正则表达式,这也是事实。谢谢你的支持。这对我来说很有效:。@Mr.Happy wow,你有没有看过你问题下面的评论?->@快乐先生,没问题。很高兴我能提供帮助。我们已经在6分钟后到达了:为了使正则表达式正确工作,OP还必须添加锚^start@Rizier123我在手机上,所以我在写答案时看不到评论,但你是对的,你是第一个。至于正则表达式,这也是事实。谢谢你的支持。这对我来说很有效:。@Mr.Happy wow,你有没有看过你问题下面的评论?->@快乐先生,没问题。很高兴我能帮忙。
public function logout(){

    // Unset facebook session data
    foreach($_SESSION as $key => $value) {
      if(preg_match('/fb_(.*)/s', $key)) {
        unset($_SESSION[$key]);
      }
    }

}
public function logout(){

    // Unset facebook session data
    foreach($_SESSION as $key => $value) {
      if(strpos($key, 'fb_') === 0) {
        unset($_SESSION[$key]);
      }
    }

}