2013-03-20 50 views
7

我正在构建一个3页的提交表单,我非常想将所有$ _POST结果存储在一个会话变量中。在不调用新密钥的情况下将数组添加到现有数组

所以第1点开始通过设置阵列和加入第一批后的数据:

$_SESSION['results'] = array(); 
$_SESSION['results'] = $_POST // first lot of post data 

这个伟大的工程,并返回一个数组,如:当我拿到

Array 
(
    [name] => bob 
    [address] => 1 foobar way 
    [age] => 100 
) 

所以从第2页结果,我想简单地将它们追加到现有阵列而不调用新阵列+密钥

array_push($_SESSION['results'], $_POST); //second lot of post data 

为了得到这样的:

Array 
(
    [name] => bob 
    [address] => 1 foobar way 
    [age] => 100 
    [job] => rubbish php dev 
    [salary] => 1000 
) 

而是我得到:

Array 
(
    [name] => bob 
    [address] => 1 foobar way 
    [age] => 100 
    [0] => Array 
    (
     [job] => rubbish php dev 
     [salary] => 1000 
    ) 
) 

更可气的是,我相信我有这个正常工作之前,我调整了代码。我究竟做错了什么?

+1

您正在寻找array_merge – ITroubs 2013-03-20 13:58:06

回答

6

您还可以使用+ operator

$combined = $_SESSION['results'] + $_POST; 
+1

谢谢你。任何想法,如果这比使用array_merge函数的开销少? – James 2013-03-20 14:20:44

+0

@ user2189903我当然会这么猜,但是你必须要做基准测试。 – jeroen 2013-03-20 14:22:25

3

array_merge()是您所追求的功能。

+1

什么碎片岩我是!我有array_merge,但将其更改为array_push。谢谢你们的快速回复。 – James 2013-03-20 14:04:16

相关问题