原文: PHP Implode – Convert Array to String with Join
在 PHP 中,implode()
函数是一个内置函数,它接收一个数组并将其转换为一个字符串。implode()
不修改原始数组。
不管这个数组是索引数组还是关联数组,都没有关系。只要你把数组传给 implode()
,它就把所有的值连接成一个字符串。
PHP implode() 语法
implode()
接收两个参数——分隔符和你想转换为字符串的数组。
分隔符可以是任何字符或一个空字符串。只要你用引号指定它,它就是有效的。如果你没有传入分隔符,implode()
仍然有效。另一方面,数组可以是一个关联数组或一个索引数组。
注意:implode()
对嵌套数组不起作用。
implode()
的完整语法是这样的:
implode(" ", $array);
在上面的语法中,一个空格(" ")是分隔符,$array
是数组。
在索引数组中使用 Implode 的例子
在 PHP 中,索引数组就像它听起来那样——数组中的每个值都有一个自动分配的索引。如果你愿意,你也可以分配索引。
下面是 implode()
在索引数组中工作的一个例子:
<?php
$langs = array("PHP", "JavaScript", "Python", "C++", "Ruby");
$newLangs = implode($langs);
// 由于我们正在打印一个字符串,我们可以使用 echo 来在浏览器中显示输出结果
echo $newLangs;
?>
请注意,我没有传入分隔符,implode()
仍然工作正常。
在下面的例子中,我传入了一个空格、逗号和连字符作为分隔符:
<?php
$langs = array("PHP", "JavaScript", "Python", "C++", "Ruby");
$newLangsSpace = implode(" ", $langs);
$newLangsComma = implode(", ", $langs);
$newLangsHyphen = implode("-", $langs);
// 由于我们正在打印一个字符串,我们可以使用 echo 来在浏览器中显示输出结果
echo $newLangsSpace."<br>"."<br>";
echo $newLangsComma."<br>"."<br>";
echo $newLangsHyphen ."<br>";
?>
你可以看到,最好指定一个分隔符,这样你可以很好地看到这些值。
在关联数组中使用 Implode 的例子
你用一个关联数组定义了一个命名的索引。让我们看看 implode()
如何在关联数组中工作。
<?php
$person = [
'first_name' => "Kolade",
'last_name' => "Chris",
'likes' => "football and Pro-wrestling",
'email' => "kolade@gmail.com",
];
//这不是我的电子邮件。不要费心给我发信息。
$newPerson = implode(" ", $person);
echo $newPerson."<br>";
?>
你可以看到索引没有被打印出来。要想把索引也打印出来,你需要在打印数组的时候把数组附加到 array_keys()
方法中:
<?php
$person = [
'first_name' => "Kolade",
'last_name' => "Chris",
'likes' => "football and Pro-wrestling",
'email' => "kolade@gmail.com",
];
// 这不是我的电子邮件。不要费心给我发信息。
$newPersonValues = implode(", ", $person)."<br>";
$newPersonKeys = implode(", ", array_keys($person));
echo $newPersonKeys."<br>";
echo $newPersonValues;
?>
为了证明原始数组被修改,我将把数组和 imploded 变量一起打印出来:
<?php
$person = [
'first_name' => "Kolade",
'last_name' => "Chris",
'likes' => "football and Pro-wrestling",
'email' => "kolade@gmail.com",
];
// 这不是我的电子邮件。不要费心给我发信息。
$newPersonValues = implode(", ", $person)."<br>";
$newPersonKeys = implode(", ", array_keys($person));
echo $newPersonKeys."<br>";
echo $newPersonValues."<br>";
print_r($person);
?>
你可以使用 PHP View Chrome 扩展来格式化你打印的数组,这样它可以看起来更好:
小结
在这篇文章中,你了解了 PHP 中的 implode()
函数以及它是如何工作的。我们也看了 implode()
函数如何在索引数组和关联数组中工作,并举了一些例子。
不要忘了 implode()
对嵌套数组(多维数组)不起作用。事实上,我可以证明这一点:
<?php
$persons = array (
array("Kolade", 22, 03),
array("Yemi", 15, 12),
array("Cook", 07, 01),
array("Oliver", 19, 01)
);
$newPersons = implode($persons);
print_r($newPersons);
?>
它不起作用,因为 implode()
只对平面数组([ ]
)而不是多维数组([ [ ] ]
)起作用。implode 看的是第一个数组,一旦它发现第一个数组中有许多数组,它就会抛出一个错误。
谢谢你阅读本文。