如何更改此代码以仅在PHP中显示输出一次?

时间:2013-02-21 16:37:42

标签: php preg-replace

基本上我有一个代码,当你输入一个列在数组中的单词时,它会从另一个数组中的一个单词中随机替换它。在这种情况下,我想做到这一点,所以 $ bye 中的单词被$ hello中的单词替换, $ animal 中的单词被 $中的单词随机替换颜色

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

例如,如果我输入“bye my cat”,它会给我举例如“hi 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);
?>

3 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

可能需要添加

echo '<br>';

在第一次preg_replace之后? 甚至不是preg_replace这里适合str_replace

答案 2 :(得分: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:输出正常。

Saludos。