замена многословных PHP массивов - PullRequest
1 голос
/ 14 декабря 2008
<?php
$string = 'The quick brown fox jumped over the lazy dog.';
$patterns[0] = '/quick/';
$patterns[1] = '/brown/';
$patterns[2] = '/fox/';
$replacements[0] = 'slow';
$replacements[1] = 'black';
$replacements[2] = 'bear';
echo preg_replace($patterns, $replacements, $string);
?>

Хорошо, ребята, Теперь у меня есть вышеуказанный код. Это просто хорошо работает. Теперь, например, я хотел бы также заменить слова «ленивый» и «собака» на «медленный». Что мне теперь нужно сделать, так это выглядеть так, верно?

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

Хорошо.

Итак, мой вопрос, есть ли способ, которым я могу сделать это

$patterns[0] = '/quick/', '/lazy/', '/dog/';
$patterns[1] = '/brown/';
$patterns[2] = '/fox/';
$replacements[0] = 'slow';
$replacements[1] = 'black';
$replacements[2] = 'bear';

Спасибо

Ответы [ 3 ]

2 голосов
/ 14 декабря 2008

почему бы не использовать str_replace?

$output = str_replace(array('quick', 'brown', 'fox'), array('lazy', 'white', 'rabbit'), $input)
2 голосов
/ 14 декабря 2008

Вы можете использовать трубы для "Чередование" :

$patterns[0] = '/quick|lazy|dog/';
0 голосов
/ 14 декабря 2008

Вы также можете просто назначить массив следующим образом:

$patterns = array('/quick/','/brown/','/fox/','lazy/',/dog/');

, который, конечно, назначить 0-4

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...