將數組添加到PHP中已包含數組的$ _SESSION變量的正確方法是什麼?
比如我有一個會話變量:
$_SESSION['test']
那麼我這樣做:
$_SESSION['test'] = array('sample' => '1', 'sample2' => 2);
然後,我回到這個會話數據在稍後的日期。我怎麼會將另一個數組添加到$ _SESSION ['test']而不破壞已經存在的內容?
將數組添加到PHP中已包含數組的$ _SESSION變量的正確方法是什麼?
比如我有一個會話變量:
$_SESSION['test']
那麼我這樣做:
$_SESSION['test'] = array('sample' => '1', 'sample2' => 2);
然後,我回到這個會話數據在稍後的日期。我怎麼會將另一個數組添加到$ _SESSION ['test']而不破壞已經存在的內容?
獲取當前值的大小,如果它是1(表示有一個數組),則創建一個新數組,其中包含test
之前的值並添加新值。然後將test
值更改爲這個新的二維數組。
看起來類似的東西:
$_SESSION['test'] = array('sample' => '1', 'sample2' => 2);
if(is_array($_SESSION['test']) && sizeof($_SESSION['test'] == 1){
$newValue = array();
$newValue[] = $_SESSION['test'];
$newValue[] = $yourOtherArray;
$_SESSION['test'] = $newValue;
}
快速又簡單。哦,不太確定這是否是「正確」的方式。
如果我正確理解你,你可以使用array_merge()來合併數組。
$new_array = array('x' => array('extra')));
$_SESSION['test'] = is_array($_SESSION['test'])?array_merge($_SESSION['test'], $new_array):$new_array;
編輯
更新做一個is_array
檢查,如果它被合併的數組,否則設置爲$new_array
。
你的意思是添加另一個數組元素?
如果是的話,你會怎麼做:
$_SESSION['test']['sample3'] = 3;
但如果沒有,那麼它聽起來就像是array_merge
你的票。
鑑於'array_merge'函數,看起來像是一大堆額外和不必要的工作。儘管測試它是否是一個數組可能是一個好主意。 – 2010-09-09 20:20:34
但'array_merge()'將它們合併在一起,在這裏它將保持em分離。 – jolt 2010-09-09 20:32:07
是的,我找到你。我想這一切都取決於OP的意思,因爲他不清楚/可以採取多種方式。如果它是多維的,它也將取決於「新陣列」的格式。 +1 – 2010-09-09 20:35:55