$arr=array('a'=>1,'b'=>2);
echo implode(',',$arr) // returns '1,2'
我需要得到a=1,b=2
。implode與保存鍵的分組數組?
我知道我可以通過使用foreach
得到它,但我知道使用較少代碼的方法較短。
$arr=array('a'=>1,'b'=>2);
echo implode(',',$arr) // returns '1,2'
我需要得到a=1,b=2
。implode與保存鍵的分組數組?
我知道我可以通過使用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
。
如landons所示,使用http_build_query
更簡潔,但正如所有的事情PHP一樣,有很多方法可以做同樣的事情。
你可以試試下面的PHP小提琴:
http://phpfiddle.org/main/code/f95-wsk