【问题标题】:How to push array keys and values in a session variable in php?如何在php的会话变量中推送数组键和值?
【发布时间】:2012-11-26 15:48:09
【问题描述】:

这是一个例子(请不要考虑下面的例子,它不是我程序的一部分)

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

【问题讨论】:

  • 当你尝试这样做时会发生什么?仅仅说“它不起作用”是不够的。除非您确切告诉我们发生了什么,否则我们无法确定问题所在。
  • 请在数组键声明前后var_dump() 你的$_SESSION。它返回什么?结果是您期望的结果还是有什么不同?
  • 拥有两个相同的键没有意义。如果您需要此用例,请从数字列表中的字符串中将其制作为地图

标签: php arrays session


【解决方案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; 
   }

【讨论】:

    【解决方案2】:

    使用 foreach() 遍历数组

    【讨论】:

      【解决方案3】:

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

      另外,不要忘记session_start()(常见错误)。

      $array = array( 'agur' => 100,
             'agur' => 300,
             'babu' => 200 ); 
      
      session_start();
      $_SESSION['allmarks'] = $array;
      

      【讨论】:

        猜你喜欢
        • 2011-01-08
        • 1970-01-01
        • 1970-01-01
        • 2013-11-09
        • 2017-09-25
        • 1970-01-01
        • 1970-01-01
        • 2014-07-17
        相关资源
        最近更新 更多