如何在PHP中将数组转换为字符串?

49

对于像下面这样的数组,最好的方法是什么来获取数组值并将它们存储为逗号分隔的字符串?

Array ( [0] => 33160,
        [1] => 33280,
        [2] => 33180,
        [3] => 33163,
        [4] => 33181,
        [5] => 33164,
        [6] => 33162,
        [7] => 33179,
        [8] => 33154,
        [9] => 33008,
        [10] => 33009,
        [11] => 33161,
        [12] => 33261,
        [13] => 33269,
        [14] => 33169,
        [15] => 33022,
        [16] => 33141,
        [17] => 33168,
        [18] => 33020,
        [19] => 33023,
        [20] => 33019,
        [21] => 33153,
        [22] => 33238,
        [23] => 33138,
        [24] => 33167,
        [25] => 33082,) 

3
为什么需要这是一个字符串?你希望这个字符串以怎样的格式呈现?你将对它进行什么操作?更多细节会更好。 - gen_Eric
只需以逗号分隔的邮政编码,例如33160、33280、33180等等... - shaytac
8个回答

85
我会将它转换成CSV格式,例如这样:
$string_version = implode(',', $original_array)

你可以通过执行以下操作将其恢复:

$destination_array = explode(',', $string_version)

CSV是user74283在他的问题评论中指定的格式。 - Isaac Sutherland
2
如果你想让它更易读,你可以在逗号后面加一个空格。', ' - Goose
2
这个代码是有效的,除非你在数组中嵌套了另一个数组,此时你会得到一个字符串 "Array"。 - Jacksonkr
@Jacksonkr:是的。为此,您需要创建某种递归功能。不过那将是一个不同的问题。如果您需要,请随时发布新问题。 :) - Teekin

44
我会将其转换为一个 JSON 对象,这样做的好处是,如果你使用的是关联数组,它可以保留键值。
$stringRepresentation= json_encode($arr);

2
此外,如果您正在使用嵌套数组,则比implode更有用。 - joshwhatk

10

使用implode()函数,可以将数组转换为字符串。

$str = implode(',', $array); // 33160,33280,33180,...

5

3

PHP的implode函数可以将数组转换为字符串,类似于其他语言中的join

您可以像这样使用它:

$string_product = implode(',', $array);

对于类似 [1, 2, 3] 的数组,这将导致一个字符串,如 "1,2,3"


3

PHP内置函数implode可将数组值赋给字符串。使用方法如下:

$str = implode(",", $array);

PHP变量以 $ 开头,而不是 var - Muhammad Tarique
抱歉,但我不明白这个答案有什么比之前的答案更好或不同,比如gen_Eric的答案。根据帖子历史记录,甚至语法最初都是错误的,直到2019年才被其他人纠正。为什么它会得到大约4个赞? - undefined

2
implode(' ',$array);

0

implode

(Note: the translated text is in simplified Chinese characters commonly used in mainland China. If you require traditional Chinese characters used in Taiwan, Hong Kong and Macau, please let me know.)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接