0

基本的に、配列にリストされている単語を入力すると、別の配列の単語の1つからランダムに置き換えられるコードがあります。この場合、 $byeの単語が $hello の単語に置き換えられ、$animal の単語が$colour の単語にランダムに置き換えられるようにしたいと考えています。

これはすべて正常に機能しますが、私が知りたいのは、エコーで2回表示されずに結合されるようにする方法です。

たとえば、「bye my cat」と入力すると、現在表示されている「yo my catbye my red 」ではなく、「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);
?>
4

3 に答える 3

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

あなたはそれらを組み合わせることができます。

または、最初の置換の結果をに割り当ててから$words、2番目の置換を実行します

$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 に答える