如何使用PHP从$ _SESSION中删除特定的空数组?

时间:2017-11-08 03:40:33

标签: php arrays session

我有一组数组,它​​们结合了上一页的set / unset会话值。我想删除未设置的值。但我不知道如何删除它,因为它没有关键来判断哪一个。

$阵列

true

如您所见,第二个数组为空键和值。我可以考虑Array ( [4ltr] => 5 [] => [800ml] => 10 ) 但是又如何告诉脚本删除带有空值的密钥?

3 个答案:

答案 0 :(得分:0)

哦,我知道了。这很简单。

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

答案 1 :(得分:0)

你可以用,

$_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));

答案 2 :(得分:0)

另一种方法是将修改后的数据分配给变量。这只是一个奇特的模式。如果您在每个页面上都这样做,那么您可以编写一个全局函数来检查。

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

print_r($data)