PHP 具有多个具有相同键的数组的多维数组?

PHP Multidimensional Array with multiple array with same keys?

我一直在尝试多种方法,但我一生都无法让它发挥作用。我开始认为这在这一点上可能是不可能的。

所以我有一个 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;

returns:

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)
}

'Param' 数组非常严格,必须有这个值,我不能更改为 'Param2' 来让它工作。提前致谢!

问题是您不能在多个密钥中设置密钥 'Param'。

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

像这样...

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

你能做到吗?

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