2012-11-26 22 views
-1

下面是一个例子(请不要考虑下面的例子,它不是我的程序的一部分)如何在php中的会话变量中推送数组键和值?

array('agur' => 100, 
     'agur' => 300, 
     'babu' => 200); 

上述数组值我想通过一次一个插入到一个会话变量一个。

问题不是我想要插入的上述示例数组。实际的脚本就像每次当我点击链接时,我想要插入到SESSION数组中的查询字符串的值。

我试过下面的代码,这并没有帮助我!

if(!isset($_SESSION['allmarks'])) 
{ 
    $_SESSION['allmarks'] = array(); 
} 
$name = $_GET['name']; //eg. agur 
$mark = $_GET['mark']; //eg. 100 

$_SESSION['allmarks'] ["$name"] = $mark; 

输出即时得到只有最后一个值插入

'agur' => 300 

我试过array_push过,但它并没有帮助我!

我要像下面的结果时,我var_dumb的SESSION['allmarks']

'agur' => 100 
'agur' => 300 
'babu' => 200 
+0

当你尝试时会发生什么?仅仅说“不起作用”是不够的。除非您确切地告诉我们发生了什么,否则我们无法确定问题是什么。 –

+0

在数组键的声明之前和之后请'var_dump()'您的$ _SESSION'。它返回什么?结果是你期望的结果还是有什么不同? – Jelmer

+0

没有意义,有两个相同的密钥。如果你想要这个用例,可以将它作为一个数字列表中的字符串映射 –

回答

0

使用的foreach()通过阵列走

1

您需要使用foreach和循环数组,

$arr = array('agur' => 100, 'agur' => 300, 'babu' => 200); 
    if(!isset($_SESSION['allmarks'])) 
    { 
    $_SESSION['allmarks'] = array(); 
    foreach($arr as $k => $v) 
    $_SESSION['allmarks'][$k] = $v; 
    } 
0

如果您只想为此阵列设置会话密钥,则无需循环。

另外,别忘了session_start()(常见错误)。

$array = array('agur' => 100, 
     'agur' => 300, 
     'babu' => 200); 

session_start(); 
$_SESSION['allmarks'] = $array;