2015-06-14 72 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