【问题标题】:How to remove a specific empty array from $_SESSION with PHP?如何使用 PHP 从 $_SESSION 中删除特定的空数组?
【发布时间】:2017-11-08 03:40:32
【问题描述】:

我有一组数组,其中包含上一页中设置/取消设置会话值的组合。我想删除未设置的值。但是我不知道如何删除它,因为它没有钥匙来分辨哪个。

$array

Array ( 
  [4ltr] => 5 
  [] => 
  [800ml] => 10 
)

如您所见,第二个数组的键和值都是空的。我可以想到 empty() 但同样,如何告诉脚本删除具有空白值的键?

【问题讨论】:

    标签: php arrays session


    【解决方案1】:

    好吧,我fxxk了。这就像 shssst 一样简单。

    foreach ($_SESSION['ss'] as $key => $value) {
        if (empty($value)) {
           unset($_SESSION['ss'][$key]);
        }
    }
    

    【讨论】:

      【解决方案2】:

      另一种方法是不将修改后的数据分配给变量。这只是一个花哨的图案。如果您在每个页面上都这样做,那么您只需编写一个全局函数来检查。

      array_walk($data, function($item, $key) use (&$data){
         if(empty($item)){
            unset($data[$key]);
          }
      });
      
      print_r($data)
      

      【讨论】:

        【解决方案3】:

        你可以做到的,

        $_SESSION= array_filter($_SESSION, function($v, $k){ return $v && $k;}, ARRAY_FILTER_USE_BOTH)
        

        你可以测试下面的代码,demo

        print_r(array_filter(array('' => '2', '3' =>3), function($v, $k){ return $v && $k;},  ARRAY_FILTER_USE_BOTH));
        

        【讨论】:

          猜你喜欢
          • 2017-07-06
          • 2016-06-29
          • 2012-01-02
          • 2011-01-27
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多