2016-04-08 74 views
0

我一直在尝试多种事情,对于我的生活无法得到这个工作。我开始认为在这一点上可能是不可能的。PHP多维数组与多个数组具有相同的密钥?

所以我有一个SOAP API我也发送这个数组。以下是我目前可以使用的代码,但不会发送多个值。它只是用最后一个覆盖前一个。

看着this thread,我在做什么应该工作?

$my_array['sn'] = "234234232"; 
$my_array['arrayparams'] = array(
'Param' => array('Name' =>  'sending_key', 'Value' => 'blah',), 
'Param' => array('Name' => 'sending_key2', 'Value' => '2',), 
); 
$my_array['push'] = true; 
$my_array['endsession'] = false; 

回报:

array(4) { 
    ["sn"]=> 
    string(12) "234234232" 
    ["arrayparams"]=> 
    array(1) { 
    ["Param"]=> 
    array(2) { 
     ["Name"]=> 
     string(61) "sending_key2" 
     ["Value"]=> 
     string(1) "2" 
    } 
    } 
    ["push"]=> 
    bool(true) 
    ["endsession"]=> 
    bool(false) 
} 

我只是有一个时间得到它送这个来代替:

array(4) { 
    ["sn"]=> 
    string(12) "234234232" 
    ["arrayparams"]=> 
    array(2) { 
    ["Param"]=> 
    array(2) { 
     ["Name"]=> 
     string(61) "sending_key" 
     ["Value"]=> 
     string(1) "blah" 
    } 
    ["Param"]=> 
    array(2) { 
     ["Name"]=> 
     string(61) "sending_key2" 
     ["Value"]=> 
     string(1) "2" 
    } 
    } 
    ["push"]=> 
    bool(true) 
    ["endsession"]=> 
    bool(false) 
} 

的“帕拉姆”阵列非常严格,必须有这值,我不能改变为'Param2'来让它工作。先谢谢了!

+2

的可能的复制[PHP关联数组重复键?](http://stackoverflow.com/questions/2879132/php-associative-array-duplicate-key) –

+0

这是不可能有在重复键关联数组,它没有任何意义。 – Barmar

+0

是的,但API要求将它以这种方式发送,这引起了我的思想。 – user1628514

回答

0

问题是你不能拥有一个以上的密钥设置密钥'参数'。

您需要将'Param'定义为实际数组,而不是数组中的多个键。

是这样的...

$my_array['Param'] = [ 
    ['Name' => 'sending_key', 'Value' => 'blah'], 
    ['Name' => 'sending_key2', 'Value' => '2'] 
]; 
+0

为此一票赞成,完美解决方案!谢谢迈克! – user1628514

+0

如果这适用于您,请接受此解决方案。谢谢! –

0

你能做到这一点?

$my_array['arrayparams'] = array(
    array('Param' => array('Name' =>  'sending_key', 'Value' => 'blah',)), 
    array('Param' => array('Name' => 'sending_key2', 'Value' => '2',)), 
); 
+0

但显然这是正确的答案,因为user1628515给Mike的答案写了“完美的解决方案”,Mike的答案基本上都是相同的答案 – Gerfried

相关问题