1

翻訳の大きな文字列からランダムな単語を取り出すことについての質問:

<?=__("water, chicken, banana, rice, bread, salt, cucumber, ananas, peach")?>

私のサイトでは現在出力しています:

water, kip, banaan, rijst, zout, komkommer, ananas, perzik

ここで、ランダムに 3 つの単語だけを取得したいとします。それ、どうやったら出来るの?

__("part inside & partという言葉に触れないことが大事")!翻訳者は の場合のみ処理できます__($var)が、 の場合のみ__("word1, word2, word3")です。

最初に結果を文字列または配列に入れるのが最善だと思います(これは私がどこまで来たか笑わないでください)

$translated = __("water, chicken, banana, rice, bread, salt, cucumber");
echo $translated;
# shuffle & echo 3 items

ここからランダムに 3 つの単語を取得するにはどうすればよい$entireStringですか?

アップデート

    $array = explode(',', $translated);
    $randomKeys = array_rand($array, 3);
    $translated = '';
    foreach(array_keys($randomKeys) as $key){
      $translated .= $array[$key].' ';  // use space or comma
    }

    echo $translated;

エコー:water kip banaan常に。うまくシャッフルできないようですか?

4

3 に答える 3

5

あなたが使用することができます

$array = explode(',', $str);
$randomKeys = array_rand($array, 3);
$str = '';
foreach($randomKeys as $key){
  $str .= $array[$key].' ';  // use space or comma
}
于 2011-03-01T13:35:48.177 に答える
2
function randomstr($str, $num = 3) {
   $str = explode(',', $str);
   return implode(',' array_rand($array, $num));
}

今:

<?=__(randomstr("water, chicken, banana, rice, bread, salt, cucumber, ananas, peach"))?>

またはでfunction __

function __($string) {
   $string = randomstr($string);
   // more your code
}
于 2011-03-01T13:36:53.393 に答える
1

値を文字列ではなく配列として格納することは可能でしょうか? それらを爆発させることができない場合,は、配列からランダムな要素を取得し、それを変換します。

例えば:

$translated = __("water, soup, rice, peanutbutter");
$translatedWords = explode(',',$translated);
shuffle($translatedWords); //Randomize them

次のようなものを出力しますSoep, Rijst, Pindakaas, Water

(また、__は関数の非常に奇妙な名前です)

于 2011-03-01T13:34:25.503 に答える