2015-06-14 35 views
-1

我有這個變量包含多個值,我想將所有值保存到$_SESSION['gamecode']。它只顯示最後一個值。如何將這些值存儲到一個會話中PHP

$var=explode("|",$key); 
    $gamecode=trim($var[0]); 
session_start(); 
$gc[]= trim($var[0]); 
$_SESSION['gamecode'][]=$gc; 
var_dump($_SESSION['gamecode']); 

EDITED

foreach($_POST['gm'] as $key => $answer){ 
    if($answer != ''){ 
    $var=explode("|",$key); 
    $gamecode=trim($var[0]); 
$_SESSION['gamecode'][]=$gc; 
    var_dump($_SESSION['gamecode']); 

EDIT 2

foreach($_POST['gm'] as $key => $answer){ 
     if($answer != ''){ 
     $var=explode("|",$key); 
     $gamecode=trim($var[0]); 
    } 
    $_SESSION['gamecode'][]=$gc; 
     var_dump($_SESSION['gamecode']); 
+0

對'if'或'foreach'沒有關閉,請添加那些 – 2015-06-14 22:16:45

+0

,現在'$ gc'沒有被定義。並且「foreach」或「if」未關閉,並且無法分辨哪個。請在發帖之前花一些時間寫一個連貫的問題 - 謝謝 – 2015-06-14 22:24:03

回答

0

我想通了。通過在foreach循環中啓動Session並在循環外調用它。它工作正常。謝謝

foreach($_POST['gm'] as $key => $answer){ 
     if($answer != ''){ 
     $var=explode("|",$key); 
     $gamecode=trim($var[0]); 
$gc[]= trim($var[0]); 
$_SESSION['gamecode']=$gc; 
    } 



var_dump($_SESSION['gamecode']); 
+1

很高興你找到了答案 - 但是根據你提出的問題,沒有人能夠做到這一點 - 下次請記住這一點 - 並將其標記爲已回答 – 2015-06-14 23:43:18

+0

謝謝。如果你和約翰·康德沒有發表評論,我不會想出來的。可以標記爲在兩天內回答。謝謝 – scylla

2

如果你希望所有的值

$var=explode("|",$key); 
$_SESSION['gamecode']=$var; 

或只是

$_SESSION['gamecode']=explode("|",$key); 

當前您只是存儲第一個。

$var[0]是後第一個數組元素的爆炸

+0

我懷疑他們需要一個循環來獲得他們正在尋找的所有值 –

+0

其可能,但基於這個問題,這是我最好的猜測 - 如果OP編輯,不適當的更新 – 2015-06-14 22:10:26

+0

它是我需要的第一個。它包含循環中的一些值。 – scylla

0

那麼,你想有$ _SESSION [「gamecode」]是管道值的數組?還是$ _SESSION ['gamecode']本身就是一個數組?

這並不完全清楚你要在這裏做什麼。

看起來你已經在$ key中獲得了管道值,你正在將數組變爲$ var,並將第一個值提取到$ gamecode。

這裏有很多冗餘,你沒有明確你想要什麼。

如果你想擁有的$ _SESSION [「gamecode」]是具有多個值的數組,你想要做這樣的事情

session_start(); 
$var=explode("|",$key); 
$_SESSION['gamecode'] = $var; 

print_r($_SESSION['gamecode']); 

不然,如果你希望它是一串多個值,使$ key成爲JSON字符串可能更有成效,否?

沒有足夠的細節給我一個簡潔的答案。

+0

請檢查上面編輯的問題。 – scylla

+0

這看起來很像Dagon的回答 –

+0

我剛剛對代碼進行了編輯。請檢查。我從循環中爆炸了$ key – scylla