0

基本上我有一个代码,当你输入一个列在数组中的单词时,它会从另一个数组中的一个单词中随机替换它。在这种情况下,我想将$bye中的单词替换为 $hello 中的单词,并将$animal中的单词随机替换为$colour中的单词。

这一切都很好,但我想知道的是我将如何制作它,以便在回声中它不会显示它两次而只是组合它。

例如,如果我输入“bye my cat”,它会给我例如“hi my red”,而不是它当前给出的“yo my catbye my red”

这是我当前的代码:

$hello=array('hello', 'hi', 'yo');  //$replacements
shuffle($hello);

$animal = array('/mouse/', '/cat/', '/dog/'); //pattern

$colour = array('yellow', 'blue', 'red');  //$replacements
shuffle($dog);

echo preg_replace($bye, $hello, $words);
echo preg_replace($mouse, $dog, $words);
?>
4

3 回答 3

1
echo preg_replace($mouse, $dog, preg_replace($bye, $hello, $words));

你可以把它们结合起来..

或将第一次替换的结果分配回$words,然后执行第二次

$words =  preg_replace($bye, $hello, $words);
echo preg_replace($mouse, $dog, $words);
于 2013-02-21T16:42:00.947 回答
0

可能需要添加

echo '<br>';

在第一次 preg_replace 之后?甚至代替 preg_replace 这里适合 str_replace

于 2013-02-21T16:43:07.227 回答
0

我稍微修改了你的代码......这是一个概念问题:

<?php
$words= "bye my cat";
echo $words."</br>";

$hello=array('hello', 'hi', 'yo');  //$replacements
shuffle($hello);

$pattern = array('/bye/', '/cat/', '/dog/'); //pattern

$replacements = array('hello', 'red', 'blue');  //$replacements


echo preg_replace($pattern, $replacements, $words);

?>

我希望你能清楚XD

PS:输出没问题。

萨卢多斯。

于 2013-02-21T16:50:01.530 回答