$arr=array('a'=>1,'b'=>2);
echo implode(',',$arr) // returns '1,2'
私はa=1,b=2
結果として得る必要があります。
を使用して取得できることはforeach
知っていますが、より少ないコードでより短い方法があることを認識しています。
あなたが試すことができます:
echo urldecode(http_build_query($arr, '', ','));
の 3 番目の引数http_build_query()
は区切り文字であるため、使用する必要はありませんstr_replace()
文字列を urlencode するurldecode()
ため、デコードに使用します。http_build_query()
これを試して:
<?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>
2 つの PHP 関数 と を使用array_walk
しimplode
ていますが、コールバック関数 も定義する必要がありましたformat_list
。
Landonshttp_build_query
で説明されているように使用するとより簡潔になりますが、PHP のすべての場合と同様に、同じことを行う方法はたくさんあります。
次の PHP フィドルを試すことができます:
http://phpfiddle.org/main/code/f95-wsk