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


more effective way to join characters into a single string in PHP

我正在一个字符一个字符地遍历一个长字符串,并对其子字符串执行特定的操作。

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

  • 只是像

    那样逐个字符地进行迭代。
    for(some iteration){
      large_string.=some_character;
    }
    
  • 或者先将这些单个字符添加到一个较小的临时字符串中,然后用单个操作

    将其连接起来
    for(some iteration){
      temporary_string.=some_character;
    }
    large_string.=temporary_string;
    

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

两个迭代是相同的,因此将花费相同的时间和相同数量的资源。

但是如果你的输入数组是这样的结构:

$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本地函数总是比自己实现相同的逻辑更好更快…至少因为你通常需要少打字。