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

如何在php中推送会话变量中的数组键和值? 这里有一个例子(请不要考虑下面的例子,它不是我的程序的一部分),php,arrays,session,Php,Arrays,Session,上面的数组值我想一次一个地插入到会话变量中 问题不是我要插入的上面的示例数组。实际脚本类似于每次单击链接时,要插入会话数组的查询字符串中的值 我已经尝试了下面的代码,但这对我没有帮助 if( !isset( $_SESSION['allmarks'] ) ) { $_SESSION['allmarks'] = array(); } $name = $_GET['name']; //eg. agur $mark = $_GET['mark']; //eg. 100 $_SESSION['

上面的数组值我想一次一个地插入到会话变量中

问题不是我要插入的上面的示例数组。实际脚本类似于每次单击链接时,要插入会话数组的查询字符串中的值

我已经尝试了下面的代码,但这对我没有帮助

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

$_SESSION['allmarks'] ["$name"] = $mark;
im获取的输出只是最后插入的值

'agur' => 300
我也尝试过
array\u push
,但对我没有帮助

当我在
会话['allmarks']

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

使用foreach()遍历数组

您需要使用
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; 
   }

如果只想为此数组设置会话密钥,则无需循环

另外,不要忘记
会话\u start()
(常见错误)


当你尝试这样做时会发生什么?仅仅说“它不工作”是不够的。除非您准确地告诉我们发生了什么,否则我们无法判断问题所在。请在声明数组键之前和之后执行
var\u dump()
您的
$\u会话。它的回报是什么?结果是你期望的结果还是有什么不同?有两个相同的键是没有意义的。如果您需要此用例,请将其作为数字列表中字符串的映射
  $arr  = array( 'agur' => 100,  'agur' => 300,   'babu' => 200 ); 
  if( !isset( $_SESSION['allmarks'] ) )
  {
    $_SESSION['allmarks'] = array();
    foreach($arr as $k => $v)
     $_SESSION['allmarks'][$k] = $v; 
   }
$array = array( 'agur' => 100,
       'agur' => 300,
       'babu' => 200 ); 

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