【问题标题】:PHP Array_merge involving $_SESSION doesn't work涉及 $_SESSION 的 PHP Array_merge 不起作用
【发布时间】:2013-09-10 15:31:42
【问题描述】:

此代码似乎不起作用:

session_start();
$_SESSION['filtros_web_jobs'] = array();
array_merge( $_SESSION['filtros_web_jobs'], $_POST['filtros_web_form'] );
var_dump($_SESSION);
var_dump($_POST);
session_write_close();
exit;

输出:

array(1) {
  ["filtros_web_jobs"]=>
  array(0) {
  }
}
array(1) {
  ["filtros_web_form"]=>
  array(1) {
    ["cola"]=>
    string(18) "fisica_Renova_zxcv"
  }
}

有什么线索吗?

谢谢

【问题讨论】:

  • 因为 $_SESSION['filtros_web_jobs'] 可能有其他我没有放在这里的值,所以代码保持干净。
  • 正确使用array_merge 将有助于$x=array_merge($y, $z); php.net/manual/en/function.array-merge.php

标签: php array-merge


【解决方案1】:

Array_merge 返回一个数组。它不会改变传递给它的数组。

$merged = array_merge( $_SESSION['filtros_web_jobs'], $_POST['filtros_web_form'] );

【讨论】:

    【解决方案2】:

    来自Array merge on PHP.net

    返回值

    返回结果数组。

    您没有将输出设置为任何内容 - 试试这个:

    $output = array_merge( $_SESSION['filtros_web_jobs'], $_POST['filtros_web_form'] );
    print_r($output);
    

    【讨论】:

      【解决方案3】:

      array_merge 返回新的合并数组。 试试:

      $a = array_merge( $_SESSION['filtros_web_jobs'], $_POST['filtros_web_form'] );
      var_dump($a);
      

      【讨论】:

        【解决方案4】:

        你还没有缓存 array_merge 函数在合并数组后给你的数据。

         $mergedArray = array_merge( $_SESSION['filtros_web_jobs'], $_POST['filtros_web_form'] );
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-06-23
          • 1970-01-01
          • 2012-03-15
          • 1970-01-01
          • 2011-04-03
          • 2017-05-30
          相关资源
          最近更新 更多