如何使用 Guzzle 的 build_query 功能?

问题描述

我必须传递具有不同值但绝对相等键的查询参数。我找到了这个 \GuzzleHttp\Psr7\build_query(); 但它只返回最后一个值。例如:

$array = [
       'test' => '1','test' => '2'
    ]
\GuzzleHttp\Psr7\build_query($array);

//OR

http_query_builder($array);

每次返回最后一项的字符串。

可以用 PHP 做到这一点吗?因为接受这些参数的一方在他们这边不能做任何事情,所以我必须用相等的键传递参数。

解决方法

问题不在于使用的特定方法,而在于您如何填充数组:

$array = [
       'test' => '1','test' => '2'
    ]

你不能两次使用同一个数组key;您的数组现在只包含 一个 元素,因为第二个元素覆盖了同一键下现有的第一个元素。

使 test 元素本身成为一个数组,其中包含您的两个值:

$array = [
  'test' => ['1','2']
];