$arr=array('a'=>1,'b'=>2);
echo implode(',',$arr) // returns '1,2'
我需要得到a=1,b=2
作为结果。
我知道我可以通过使用foreach
来获得它,但我知道有一种更短的方法,使用更少的代码。
试试这个:
<?php
$arr=array('a'=>1,'b'=>2);
echo str_replace('&', ',', http_build_query($arr));
您可以尝试:
echo urldecode(http_build_query($arr, '', ','));
http_build_query()
的第三个参数是分隔符,所以不需要使用str_replace()
使用urldecode()
进行解码,因为http_build_query()
会对字符串进行urlencode。
如果您希望在格式化或处理数组元素方面有更多的控制,您可以尝试:
<pre>
<?php
$fruits = array("d" => "lemon",
"a" => "orange",
"b" => "banana",
"c" => "apple");
function format_list(&$list, $key)
{
$list = "{$key}={$list}";
}
echo "Starting array:'n";
print_r($fruits);
echo "'nModified array:'n";
array_walk($fruits, 'format_list');
print_r($fruits);
echo "'nFinal string:'n";
echo implode(',',$fruits);
?>
</pre>
我使用两个PHP函数array_walk
和implode
,但我还需要定义一个回调函数format_list
。
使用http_build_query
(如landons所示)更简洁,但就像所有PHP一样,有很多方法可以做同样的事情。
您可以尝试以下PHP操作:
http://phpfiddle.org/main/code/f95-wsk