70

implode()&join()因为两者的工作方式相同,有什么区别。

<?php
    $array = array(1,2,3);
    
    echo join(",", $array); // output 1,2,3
    echo implode(",", $array); // output 1,2,3
?>

使用一个比另一个有什么优势吗?

4

5 回答 5

155

它们是彼此的别名。从理论上讲,它们的工作原理应该完全相同。虽然,使用explode/implode 已被证明可以将您的代码的精彩程度提高10%

于 2013-07-28T23:24:06.930 回答
23

Join : Join 是 implode() 的别名。

例子:

<?php
$arr = array('Test1', 'Test2', 'Test3');
$str = join(",", $arr);
echo $str; 
?>

输出:Test1、Test2、Test3。

Implode : implode 从数组元素中返回一个字符串。

例子:

<?php
$arr = array('Test1', 'Test2', 'Test3');
$str = implode(",", $arr);
echo $str; 
?>

输出:Test1、Test2、Test3。

更新:

我在 Benchmark 中对它们进行了测试,它们的速度相同。它们之间没有区别。

于 2013-07-28T23:33:33.237 回答
16

join()是 的别名implode(),因此implode理论上更多的是“PHP 原生”,尽管使用它绝对不会提高性能。

另一方面,join()在 Perl、Python 和 ECMAScript(包括 JavaScript)等其他语言中都可以找到它,因此在更广泛的程序员受众的可理解性方面更具可移植性。

因此,尽管explodeimplode无疑听起来更具戏剧性,但我会投票支持join将数组的每个值连接成字符串的更通用的方式。

于 2016-05-02T02:40:31.840 回答
5

一个都想不出来 一个是另一个的别名。它们都将数组元素组合成一个字符串。

于 2013-07-28T23:24:03.773 回答
-1

简而言之,实际情况是,在 php 中,join() 和 implode() 方法的功能相同。

一个可以互换另一个,因为它们以相同的方式工作。

于 2020-01-10T12:55:05.947 回答