搜索了很久,但没有得到任何可行的答案。
A) 输入:
A) 输入:
$array = array(
'order_source' => array('google','facebook'),
'order_medium' => 'google-text'
);
看起来像这样:
Array
(
[order_source] => Array
(
[0] => google
[1] => facebook
)
[order_medium] => google-text
)
B) 需要的输出结果:
order_source=google&order_source=facebook&order_medium=google-text
C) 我尝试过的(http://3v4l.org/b3OYo):
$arr = array('order_source' => array('google','facebook'), 'order_medium' => 'google-text');
function bqs($array, $qs='')
{
foreach($array as $par => $val)
{
if(is_array($val))
{
bqs($val, $qs);
}
else
{
$qs .= $par.'='.$val.'&';
}
}
return $qs;
}
echo $qss = bqs($arr);
D) 我理解的内容:
order_medium=google-text&
注意:这也适用于任何单维数组,就像http_build_query()
一样。
order_source=google&order_source=facebook
你正在用第二个覆盖order_source
GET 变量,所以你将得不到第一个?可以运行的方法是:order_source[]=google&order_source[]=facebook
。 - Jared Farrishhttp_build_query
,我想提醒一下:order_source=google&order_source=facebook
是行不通的。 - PeeHaaorder_status[]=google
语法理解为数组了。另外,可能更简单的选项是将您的数组进行JSON编码并将其作为变量传递,然后在服务器上使用json_decode()
将其解码回数组。 - Jared Farrish