我正在一个字符一个字符地遍历一个长字符串,并对其子字符串执行特定的操作。
在某一点上,我必须将较小的字符串与较大的字符串合并,这里我不确定哪个更有效:
-
只是像
那样逐个字符地进行迭代。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本地函数总是比自己实现相同的逻辑更好更快…至少因为你通常需要少打字。