1

$helloからの単語の1つを入力すると、ランダムに単語の1つを選択して表示するようにしようとしてい$byeます。試してみると、0、1、または2しか表示されません。これを修正して、$bye代わりに配列から単語の1つをランダムに取得するにはどうすればよいですか。

<?php
$words = $_POST['words'];
$hello = array('hello', 'hi', 'yo', 'sup');
$bye = array('bye', 'seeya', 'aurevoir');
$words = preg_replace('/\b('.implode('|', $hello).')\b/i', '<span class="highlight">'.array_rand($bye).'</span>', $words);
echo $words;
?>
4

4 に答える 4

1
$index = array_rand($bye);
echo $bye[$index];
于 2013-02-21T06:15:29.950 に答える
0

配列を使用できますpreg_replace

$words="this is any text bye";
$bye = array('/bye/', '/seeya/', '/aurevoir/'); //pattern

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

echo preg_replace($bye, $hello, $words);
于 2013-02-21T06:15:53.603 に答える
0
$hello = array("Hi", "Hola", "Yo dawg! I heard you liked words in your hello!");
$bye = array("Later","Hasta Luego","Guten Tag");
echo $bye[array_rand($hello)];
于 2013-02-21T06:15:19.377 に答える
0

$bye配列内にある場合$wordに配列からランダムな項目を選択したい場合は、あなたの質問を明確に理解できませんでした$hello:

$hello = array('hello', 'hi', 'yo', 'sup');
$bye = array('bye', 'seeya', 'aurevoir');
if(in_array($word,$hello))
    echo $bye[array_rand($bye)];
else
    echo "word is not in hello array";
于 2013-02-21T06:25:32.277 に答える