如何洗牌&从字符串中回收5个随机元素?

时间:2011-03-01 15:18:16

标签: php string random random-sample

关于从一大串说200个单词中获取三个随机单词的问题:

$trans = __("water paradise, chicken wing, banana beach, tree trunk")?>
// $trans becomes "water paradijs, kippenvleugel, bananen strand, boom tak"
// elements are separated by comma's and a space

现在想象一下,我希望从$ trans字符串中获取 5个随机元素并回显 我怎样才能做到这一点?代码是受欢迎的!请在答案中保留此语法:

$trans =原始字符串

$shufl = 5个元素的选择性shuffle 包含例如kippenvleugel, boom tak

3 个答案:

答案 0 :(得分:1)

您可以使用split创建字符串数组,然后使用shuffle对其进行随机播放:

# Split the string into different elements
$strings = split(',', $trans);
# Shuffle the array
shuffle($strings);

# Select 5 elements
$shufl = array_slice($strings,  0, 5);
然后使用

array_slice来获取混洗数组的前5个元素。另一种可能性是在拆分数组上使用array_rand

$shufl = array_rand(array_flip($strings), 5);

答案 1 :(得分:1)

$array = explode ( ',',$trans);
shuffle($array);
for ( $i = 0 ; $i < 5 ; $i ++ ){
   $shufl[] = $array[$i];
}

这将导致包含5个随机元素的$ shufl数组。

希望这会有所帮助:)

答案 2 :(得分:0)

为了更好地理解。什么是随机字符串?

可以是:

  • 'water paradijs''kippenvleugel''bananen strand'

或者也可以

  • 'water strand''kippenvleugel bananen'等。