用PHP的implode()函数将数组元素值转换为逗号分隔的字符串

implode函数是一个连接数组元素并将它们转换为字符串的函数。可以在这个组合的时候加上一个分隔符,叫做delimiter。

什么是implode函数?

将数组元素用分隔符分隔成字符串

implode函数将数组的元素连接成一个字符串。

这时候可以添加一个定界符,叫做 delimiter 。

<?php
$fruits = ['melon', 'apple', 'banana'];
$result = implode(',', $fruits);
 
echo $result;
?>

执行结果:

melon,apple,banana

前面解释过,看执行结果,可以看到数组的元素是用逗号分隔的,变成了这样的字符串。

implode 函数的第一个参数指定要在元素之间插入的分隔符。

在本例中,指定了一个逗号,因此在每个元素“melon”和“apple”之间添加了一个“,”以将它们组合起来。

参数的顺序不同也会移动?

通常,需要为每个参数顺序向函数传递一个固定值。

然而,这个 implode 函数是一个特殊的函数,即使第一个和第二个参数的值颠倒也能工作。

<?php
$fruits = ['melon', 'apple', 'banana'];
$result = implode($fruits, ',');
echo $result;
?>

执行结果:

melon,apple,banana

这样我就可以在参数颠倒的情况下得到相同的结果。

为什么会这样?

如果查看 PHP 的官方文档,您会发现以下描述:

注意:

由于历史原因,implode()可以按任何顺序接受参数。但是,从与explode()的统一性的观点来看,使用文档中记述的参数的顺序会减少混乱。

换言之,即使参数的顺序不同他的结果也是一样的。

但是,如文档所示,最好为第一个参数指定定界符(delimiter),为第二个参数指定数组变量,因为这样可以减少混淆。

用PHP的implode()函数将数组元素值转换为逗号分隔的字符串

在implode函数中指定二维数组时

在上一章中,我们给implode函数指定了一个一维数组,并将数组的元素拼接成一个字符串。

但是如果这个数组是一个二维数组呢?

让我们看一下示例代码,看看会发生什么。

<?php
$fruits = [['mask_melon', 'homerun_melon'], 'apple', 'banana'];
$result = implode(',', $fruits);
echo $result;
?>

执行结果:

PHP Notice:  Array to string conversion in /XXXX.php on line 5

警告,无法正常运行。

也就是说,implode函数指定的数组必须是一维数组。

顺便说一下,如果这个变量 $fruits 是一个空数组怎么办?

<?php
$fruits = [];
$result = implode(',', $fruits);
echo $result;
?>

代码看起来像这样。

在这些情况下,返回一个空字符串。

使用 explode 函数将字符串拆分为数组

到目前为止,我们已经讨论了implode函数。接下来,我将解释explode

函数,它 的工作方向与 implode 函数相反。

反向是指将字符串按特定字符拆分为数组。

让我们看一个示例。

<?php
$fruits = 'melon,apple,banana';
$result = explode(',', $fruits);
var_dump($result);
?>

执行结果:

array(3) {
  [0]=>
  string(5) "melon"
  [1]=>
  string(5) "apple"
  [2]=>
  string(6) "banana"
}

变量 $fruits 保存由逗号分隔的字符串,这些字符串位于单词 melon、apple 等之间。

通过将这个字符串传递给explode函数,拆分后的数组变量将返回给变量$result。

如果查看执行结果,可以看到没有逗号,每个单词都是数组的一个元素。

结语

这一次,我们解释了 implode 函数,它将数组的每个元素连接成一个字符串。

同时,我们还看到了根据分隔符将字符串拆分为数组的 explode 函数。

最后编辑于:2023/03/21作者: 烽烟无限