gpt4 book ai didi

php - 用数组调用的 preg_replace() 需要事先使用 ksort() 吗?嗯?

转载 作者:行者123 更新时间:2023-12-03 23:27:12 24 4
gpt4 key购买 nike

周末我用 preg_replace 做了一些工作,我正在阅读 Php preg_replace documentation当我看到奇怪的东西时。

文档中的示例 #2 显示,当给出以下 php 代码时

<?php
$string = 'The quick brown fox jumped over the lazy dog.';
$patterns[0] = '/quick/';
$patterns[1] = '/brown/';
$patterns[2] = '/fox/';
$replacements[2] = 'bear';
$replacements[1] = 'black';
$replacements[0] = 'slow';
echo preg_replace($patterns, $replacements, $string);
?>

输出将是

"The bear black slow jumped over the lazy dog."

为了生成(在我看来)默认应该输出的内容,我需要事先调用 ksort()。像这样:

<?php
ksort($patterns);
ksort($replacements);
echo preg_replace($patterns, $replacements, $string);
?>

这真的不是解决 php 的 preg_replace() 错误的方法吗?为什么 php 会这样?此处声明的数组是否有我遗漏的特殊之处?

最佳答案

文档还说:

the keys are processed in the order they appear in the array

所以它发生的原因是使用了简单的 foreach 类型的迭代而不是索引访问。

关于php - 用数组调用的 preg_replace() 需要事先使用 ksort() 吗?嗯?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1940443/

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