【发布时间】:2017-11-08 03:40:32
【问题描述】:
我有一组数组,其中包含上一页中设置/取消设置会话值的组合。我想删除未设置的值。但是我不知道如何删除它,因为它没有钥匙来分辨哪个。
$array
Array (
[4ltr] => 5
[] =>
[800ml] => 10
)
如您所见,第二个数组的键和值都是空的。我可以想到 empty() 但同样,如何告诉脚本删除具有空白值的键?
【问题讨论】:
我有一组数组,其中包含上一页中设置/取消设置会话值的组合。我想删除未设置的值。但是我不知道如何删除它,因为它没有钥匙来分辨哪个。
$array
Array (
[4ltr] => 5
[] =>
[800ml] => 10
)
如您所见,第二个数组的键和值都是空的。我可以想到 empty() 但同样,如何告诉脚本删除具有空白值的键?
【问题讨论】:
好吧,我fxxk了。这就像 shssst 一样简单。
foreach ($_SESSION['ss'] as $key => $value) {
if (empty($value)) {
unset($_SESSION['ss'][$key]);
}
}
【讨论】:
另一种方法是不将修改后的数据分配给变量。这只是一个花哨的图案。如果您在每个页面上都这样做,那么您只需编写一个全局函数来检查。
array_walk($data, function($item, $key) use (&$data){
if(empty($item)){
unset($data[$key]);
}
});
print_r($data)
【讨论】:
你可以做到的,
$_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));
【讨论】: