[英]PHP: unset $_SESSION of array
我有一個名為數組的會話:
$_SESSION['A'];
它包含
$_SESSION['A'][0] = 'A';
$_SESSION['A'][1] = 'B';
我可以取消設置$ _SESSION ['A']; 運用
unset($_SESSION['A']);
它取消設置數組中的所有值,如何取消保存在數組中的所有值
$_SESSION['A'];
exept
$_SESSION['A'][0];
$_SESSION['A'][1];
我已經看到了這個POST
它將所有$ _SESSION設置為 unset的值存儲在數組中。 我使用此代碼在數組上取消設置,但不知道如何將其用作數組。
$keys = array('x', 'y');
$_SESSION = array_intersect_key($_SESSION, array_flip($keys));
像這樣使用array_slice
:
$_SESSION['A'] = array_slice($_SESSION['A'], 0, 2);
更新:
另外,對於非順序索引,我們可以創建以下函數:
function array_pick($picks, $array)
{
$temp = array();
foreach($array as $key => $value)
{
if(in_array($key, $picks))
{
$temp[$key] = $value;
}
}
return array_values($temp);// or just $temp to keep original indexes
}
怎么樣:
$keys = array(0,1);
$_SESSION['A'] = array_intersect_key($_SESSION['A'], array_flip($keys));
這是概念的證明 。
您將只能取消設置數組中的某些值。 相反,只需保存這些變量的值,取消設置整個數組,然后重新設置值即可。
// Save existing values
$saved_var1 = $_SESSION["A"][0];
$saved_var2 = $_SESSION["A"][1];
// Unset the entire array
unset( $_SESSION["A"] );
// Set the values by the saved variables
$_SESSION["A"] = array(
$saved_var1,
$saved_var2
);
您甚至可以使用array_splice()
$_SESSION['A']=array_splice($_SESSION['A'], 2);
嘗試這個
$_SESSION['A'] = array();
unset($_SESSION['A']);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.