implode函数是一个连接数组元素并将它们转换为字符串的函数。可以在这个组合的时候加上一个分隔符,叫做delimiter。
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),为第二个参数指定数组变量,因为这样可以减少混淆。
在上一章中,我们给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;
?>
代码看起来像这样。
在这些情况下,返回一个空字符串。
到目前为止,我们已经讨论了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 函数。
评论列表:
发布于 4天前回复该评论
发布于 3天前回复该评论
发布于 3天前回复该评论
发布于 3天前回复该评论
发布于 3天前回复该评论