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, '', ','));

的第三个参数http_build_query()是分隔符,所以不需要使用str_replace()

用于urldecode()解码,因为http_build_query()会对字符串进行urlencode。

于 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>

我使用了两个 PHP 函数array_walkimplode,但我还需要定义一个回调函数 ,format_list

使用http_build_query如landons 所示更简洁,但与所有PHP 一样,有很多方法可以做同样的事情。

您可以尝试以下 PHP 小提琴: http:
//phpfiddle.org/main/code/f95-wsk

于 2013-03-08T20:37:01.407 回答