$arr=array('a'=>1,'b'=>2);
echo implode(',',$arr) // returns '1,2'
我需要得到a=1,b=2
结果。
我知道我可以通过使用来获得它,foreach
但我知道有一种更短的方法和更少的代码。
你可以试试:
echo urldecode(http_build_query($arr, '', ','));
的第三个参数http_build_query()
是分隔符,所以不需要使用str_replace()
用于urldecode()
解码,因为http_build_query()
会对字符串进行urlencode。
尝试这个:
<?php
$arr=array('a'=>1,'b'=>2);
echo str_replace('&', ',', http_build_query($arr));
如果您想要更多地控制格式化或处理数组元素,您可以尝试:
<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