2012-01-17 38 views
2

我有一個包含數組的會話。該陣列包含以下數據:如何刪除會話中的數組中的項目? php

Array ( 
    [0] => /assets/img/user_photos/thumbs/9c2310c2def9981221ec37cbbafe0370.jpg 
    [1] => /assets/img/user_photos/thumbs/286b59eb3dafe2e0cf0df50e45f10250.jpg 
    [2] => /assets/img/user_photos/thumbs/4e6012cc396252594d2a05850b0a35ae.jpg 
    [3] => /assets/img/user_photos/thumbs/49ce9031319203c1911c0b9789a83ffc.jpg 
    [4] => /assets/img/user_photos/thumbs/da21379f3dc80541a087e1c4db5f929a.jpg 
    [5] => /assets/img/user_photos/thumbs/1f46378fdd7dcf7fda580e50ca92a2d0.jpg 
) 

我想從此數組中刪除項目。當數組存儲在會話中時,這怎麼可能?

回答

7

使用unset刪除從數組元素。

unset($array[1]); 
2

在非破解環境中,superglobal-Array $ _SESSION引用會話中的所有數據。 所以,你可以刪除該條目:

unset($_SESSION['indexToYourArray'][0]); 

(你沒有提到在會話變量索引存儲)。如果數組是會議內容的代碼應爲:

unset($_SESSION[0]); 
0

使用本

$array = array(0, 1, 2, 3); 

unset($array[2]); 
$array = array_values($array); 
var_dump($array); 

,並獲得更多信息讀取this

0
unset($_SESSION['array_name']); 
+0

這將取消設置它們的整個數組,而不僅僅是一個項目。 – Umbrella

1

您可以使用unset()

例如:

$_SESSION['abc'] = Array ('foo','bar'); 

刪除bar

unset($_SESSION['abc'][1]); 
1

使用未設置

<?php 
unset($_SESSION['array'][0]); 
var_dump($_SESSION); 
?> 
1

你可以撤消該數組項:

unset($_SESSION['array'][0]); 
2

您可以使用

unset($_SESSION['Array_name']['index_tobe_delete']); 

OR

$_SESSION['Array_name']['index_tobe_delete'] = "" ; 
+0

第二個與'=='只會比較,而不是未設置。 – Umbrella

+1

-1,即使使用'=「」'也不會取消設置,而是將其設置爲空字符串。 – Kaii