gpt4 book ai didi

php - 使用 'preg_replace' 和具有多个索引的数组时是否会影响性能或其他一些负面因素?

转载 作者:行者123 更新时间:2023-12-04 06:22:16 25 4
gpt4 key购买 nike

使用“preg_replace”和具有多个索引的数组时是否会影响性能或其他一些负面因素?

$string = 'The quick brown fox jumped over the lazy dog.';

$patterns[0] = '/quick/';
$patterns[1] = '/brown/';
...
$patterns[100] = '/fox/';

$replacements[0] = 'bear';
$replacements[1] = 'black';
...
$replacements[100] = 'slow';

echo preg_replace($patterns, $replacements, $string);

最佳答案

走着瞧

/** Get current time with microseconds */
function gettime() {
list($ms, $s) = explode(' ', microtime());
return (float)$s + (float)$ms;
}

define('PAT_COUNT', 20000);

$patterns = array();
$replacements = array();
// The string will be the same for both tests
$string = '';
for ($i = 0; $i < PAT_COUNT; $i++) {
$string .= "$i ";
$patterns[] = "/$i /";
$replacements[] = ":$i:";
}

$start = gettime();
$result1 = preg_replace($patterns, $replacements, $string);
echo "preg_replace with arrays: ".(gettime() - $start)."\n";

$start = gettime();
$result2 = $string;
for($i = 0; $i < PAT_COUNT; $i++) {
$result2 = preg_replace("/$i /", ":$i:", $result2);
}
echo "preg_replace inside of a loop: ".(gettime() - $start)."\n";

输出是
preg_replace with arrays: 19.568552017212
preg_replace inside of a loop: 20.119801044464

实际上它甚至更快一点,但并不显着。也许是因为它的实现中有某种优化的循环。

但谁知道呢,也许你的数据结果会有所不同。尝试使用您的数据样本进行这样的基准测试。

关于php - 使用 'preg_replace' 和具有多个索引的数组时是否会影响性能或其他一些负面因素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6407267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com