PHP - 查询字符串的多维数组 [英] PHP - multidimensional array to query string
本文介绍了PHP - 查询字符串的多维数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
搜索了很长时间,但没有得到任何可行的答案.
Searched for so long but didn't get any feasible answer.
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
order_source=google&order_source=facebook&order_medium=google-text
C)我尝试过的(http://3v4l.org/b3OYo):
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) 我得到了什么:
order_medium=google-text&
order_medium=google-text&
注意:它也应该适用于任何一维数组,如 http_build_query()
作品.
Note: It should also work for any single dimensional array like http_build_query()
works.
推荐答案
我希望这就是您正在寻找的,它适用于单维到 n 维数组.
I hope that this is what you are looking for, it works with single to n-dimensinal arrays.
$walk = function( $item, $key, $parent_key = '' ) use ( &$output, &$walk ) {
is_array( $item )
? array_walk( $item, $walk, $key )
: $output[] = http_build_query( array( $parent_key ?: $key => $item ) );
};
array_walk( $array, $walk );
echo implode( '&', $output ); // order_source=google&order_source=facebook&order_medium=google-text
这篇关于PHP - 查询字符串的多维数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文