2017-11-08 8 views
0

私は前のページからのセッション値のセット/未設定の組み合わせで配列のセットを持っています。私は未設定の値を削除したい。しかし、私はそれを削除する方法がわからないので、それはどのキーを知らせるための鍵がないためです。

$配列

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

あなたは第二配列が空の両方のキーと値で見たよう。私はempty()のことを考えることができますが、再び、空白の値を持つキーを削除するスクリプトをどのように伝えるのですか?

答えて

0

Okey、I fxxk up。これはshssstのように簡単です。

foreach ($_SESSION['ss'] as $key => $value) { 
    if (empty($value)) { 
     unset($_SESSION['ss'][$key]); 
    } 
} 
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)); 
0

別のアプローチは、変数に変更されたデータを割り当てずになるであろう。それはただのパターンです。あなたがすべてのページでそれをしているならば、チェックするグローバル関数を書くことができます。

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

print_r($data) 
+0

wow!私にはたくさんのソリューションと新しいテクニックがあります。皆さん、ありがとうございました!!! – Wilf

関連する問題