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

发布于 2024-12-25 13:15:44 字数 153 浏览 0 评论 0原文

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

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

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

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

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

How can I select a random string (fast) via PHP?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

烟─花易冷 2025-01-01 13:15:44

怎么样:

$random = rand(0, 1) ? 'Red' : 'Blue';

What about:

$random = rand(0, 1) ? 'Red' : 'Blue';
oО清风挽发oО 2025-01-01 13:15:44

代码问题

PHP rand() 函数接受两个数字作为输入,形成从中选择随机数的范围。你不能给它喂线。

请参阅 rand() 的 PHP 手册页。

解决方案

您可以使用 array_rand()

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

另一种选择是使用 shuffle()

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

Issue with your code

The PHP rand() function takes two numbers as input to form the range to pick a random number from. You cannot feed it strings.

See the PHP manual page for rand().

Solutions

You can use array_rand():

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

Another option is to use shuffle().

$strings = array(
    'Red',
    'Blue',
);
shuffle($strings);
echo reset($strings);
停顿的约定 2025-01-01 13:15:44

使用数组:

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

Use an array :

$input = array("Red", "Blue", "Green");
echo $input[array_rand($input)];
苏辞 2025-01-01 13:15:44

遇到了这个在谷歌结果中名列前茅的老问题。您可以有两个以上的选项,并且仍然可以在一行中获得所有选项。

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

Ran into this old question that tops google's results. You can have more than two options and still get it all on one line.

echo ['green', 'blue', 'red'][rand(0,2)];
初吻给了烟 2025-01-01 13:15:44

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

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

array_rand() is probably the best way:

$varNames = array('apple','banana');
$var = array_rand($varNames);
echo ${$varNames[$var]};
笔芯 2025-01-01 13:15:44

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

看一下文档:
http://php.net/rand

实现您想要的效果的一个简单方法是:

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

据我所知我读过,这个解决方案比 array_rand() 更快。我可以看看是否能找到它的来源。

The function rand() has two parameters: a lower-limit for a random number and an upper limit. You can not use variables like that because it is not the way the function works.

Take a look at the documentation:
http://php.net/rand

A simple way to achieve what you want is this:

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

As far as I've read, this solution is faster than array_rand(). I can see if I can find the source of that.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文