1

关于在翻译从更大的字符串中获取一些随机单词的问题:

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

在我的网站上目前输出:

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

现在想象一下,我想随机从中得到 3 个单词。我怎么做?

重要的是不要触摸里面的零件__("")零件!翻译器无法处理 when__($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 回答