繁体   English   中英

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

[英]How to remove a specific empty array from $_SESSION with PHP?

我有上一组包含设置/未设置会话值组合的数组。 我要删除未设置的值。 但我不知道如何删除它,因为它没有告诉哪个键的关键。

$数组

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

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

Okey,我f了起来。 像shssst一样容易。

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

你可以做到的

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

您可以测试以下代码, 演示

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

另一种方法是不将修改后的数据分配给变量。 这只是一种奇特的模式。 如果要在每个页面上执行此操作,则可以编写一个全局函数进行检查。

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

print_r($data)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM