Я немного работал с preg_replace
в выходные и читал документацию Php preg_replace
, когда увидел что-то странное
Пример # 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);
?>
Разве это не обходной путь для ошибки в preg_replace()
php? Почему php ведет себя так? Есть ли какая-то особенность с объявленными здесь массивами, которые мне не хватает?