0
$arr=array('a'=>1,'b'=>2);

echo implode(',',$arr) // returns '1,2'

私はa=1,b=2結果として得る必要があります。

を使用して取得できることはforeach知っていますが、より少ないコードでより短い方法があることを認識しています。

4

3 に答える 3

2

あなたが試すことができます:

echo urldecode(http_build_query($arr, '', ','));

の 3 番目の引数http_build_query()は区切り文字であるため、使用する必要はありませんstr_replace()

文字列を urlencode するurldecode()ため、デコードに使用します。http_build_query()

于 2013-03-08T20:14:07.867 に答える
2

これを試して:

<?php
$arr=array('a'=>1,'b'=>2);
echo str_replace('&', ',', http_build_query($arr));
于 2013-03-08T20:05:44.847 に答える
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>

2 つの PHP 関数 と を使用array_walkimplodeていますが、コールバック関数 も定義する必要がありましたformat_list

Landonshttp_build_queryで説明されているように使用するとより簡潔になりますが、PHP のすべての場合と同様に、同じことを行う方法はたくさんあります。

次の PHP フィドルを試すことができます:
http://phpfiddle.org/main/code/f95-wsk

于 2013-03-08T20:37:01.407 に答える