在PHP中将字符连接到单个字符串的更有效方法

时间:2013-04-24 07:52:58

标签: php string iteration concatenation

我逐个字符地迭代,通过一个冗长的字符串,并对其子字符串进行特定的操作。

有一点我必须将较小的字符串与较大的字符串合并,在这里我不确定哪个更有效:

  • 只需逐个字符地添加字符,如

    for(some iteration){
      large_string.=some_character;
    }
    
  • 或首先将这些单个字符添加到较小的临时字符串中,然后将其与单个操作连接

    for(some iteration){
      temporary_string.=some_character;
    }
    large_string.=temporary_string;
    

2 个答案:

答案 0 :(得分:1)

两种方法都需要相同的时间来创建新字符串。没有时间差异。

答案 1 :(得分:1)

两次迭代都是相同的,因此需要相同的时间和相同数量的资源。

但是如果您的输入数组具有以下结构:

$array = array('a', 'b', 'c', 'd');

您不应该使用自己的迭代和字符串连接,而是以这种方式使用implode

$large_string .= implode('', $array);

这个更快。即使输入数组不是那种结构,也应该更快地使用这个片段(没有测试它):

$tmp = array();
foreach($somethings as $something) { // <-- foreach loop is quicker then for loop
    $tmp[] = $something['my_char'];
}
$large_string .= implode('', $tmp);

使用 PHP原生函数总是更好更快,然后自己实现相同的逻辑......至少因为你通常需要输入更少的。