PHP从两个字符串中选择一个随机字符串

时间:2012-01-05 12:03:10

标签: php random

$apple="";
$banana="";
$apple="Red";
$banana="Blue";

$random(rand($apple, $banana);
echo $random;

如何通过PHP选择随机字符串(快速)?

6 个答案:

答案 0 :(得分:21)

您的代码问题

PHP rand()函数将两个数字作为输入,以形成从中选择随机数的范围。你无法提供字符串。

请参阅PHP manual page for rand()

解决方案

您可以使用array_rand()

$strings = array(
    'Red',
    'Blue',
);
$key = array_rand($strings);
echo $strings[$key];

另一种选择是使用shuffle()

$strings = array(
    'Red',
    'Blue',
);
shuffle($strings);
echo reset($strings);

答案 1 :(得分:20)

怎么样:

plot(...)

答案 2 :(得分:7)

使用数组:

$input = array("Red", "Blue", "Green");
echo $input[array_rand($input)];

答案 3 :(得分:2)

array_rand()可能是最好的方式:

$varNames = array('apple','banana');
$var = array_rand($varNames);
echo ${$varNames[$var]};

答案 4 :(得分:1)

函数rand()有两个参数:随机数的下限和上限。你不能使用这样的变量,因为它不是函数的工作方式。

查看文档:
http://php.net/rand

实现目标的简单方法是:

$array = array();
$array[0] = 'banana';
$array[1] = 'orange';
$randomSelected = $array[rand(0,(count($array)-1))];

据我所知,此解决方案比array_rand()更快。我可以看看能不能找到它的来源。

答案 5 :(得分:1)

进入谷歌的结果这个老问题。您可以拥有两个以上的选项,但仍然可以在一行中完成所有选项。

echo ['green', 'blue', 'red'][rand(0,2)];