$arr=array('a'=>1,'b'=>2);
echo implode(',',$arr) // returns '1,2'
我需要获得a=1,b=2
作为结果。
我知道我可以使用foreach
来获取它,但我知道使用更少的代码会有更短的方法。
答案 0 :(得分:2)
试试这个:
<?php
$arr=array('a'=>1,'b'=>2);
echo str_replace('&', ',', http_build_query($arr));
答案 1 :(得分:2)
您可以尝试:
echo urldecode(http_build_query($arr, '', ','));
http_build_query()
的第三个参数是分隔符,因此不需要使用str_replace()
使用urldecode()
进行解码,因为http_build_query()
会对字符串进行urlencode。
答案 2 :(得分:1)
如果您想要更多地控制格式化或处理数组元素,可以尝试:
<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
。
如Landons所示,使用http_build_query
更简洁,但就像PHP一样,有许多方法可以做同样的事情。
您可以尝试以下PHP小提琴:
http://phpfiddle.org/main/code/f95-wsk