Searched for so long but didn't get any feasible answer.
A) Input:
$array = array(
'order_source' => array('google','facebook'),
'order_medium' => 'google-text'
);
Which looks like:
Array
(
[order_source] => Array
(
[0] => google
[1] => facebook
)
[order_medium] => google-text
)
B) Required output:
order_source=google&order_source=facebook&order_medium=google-text
C) What I've tried (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) What I'm getting:
order_medium=google-text&
Note: It should also work for any single dimensional array like http_build_query() works.
order_source=google&order_source=facebookYou're overwriting theorder_sourceGET variable with the second, so you'll not get the first? What would work is:order_source[]=google&order_source[]=facebookhttp_build_querya note:order_source=google&order_source=facebookis not going to workorder_status[]=googlesyntax as array already. Another, probably much simpler option would be to JSON encode your array and pass it as a variable, thenjson_decode()it back to it's array on the server.