不带 if 的字符串回显

发布于 2025-01-05 00:16:32 字数 242 浏览 1 评论 0原文

我有大约50根弦。

$rand = rand(0,50);

$name[1] = "Jane";
$name[2] = "Marienne";
...
...
...
$name[50] = "Mary";

echo $name[$rand];

例如,如果 $rand=="2" 我想回显“Marienne”。但上面的代码不起作用。而且我不想使用 if 语句,因为字符串太多。你有什么建议我?谢谢。

I have like 50 strings.

$rand = rand(0,50);

$name[1] = "Jane";
$name[2] = "Marienne";
...
...
...
$name[50] = "Mary";

echo $name[$rand];

I want to echo "Marienne" if $rand=="2" for example. But the code above is not working. And I don't want to use if statement because there are too many strings. What do you suggest me ? Thanks.

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

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

发布评论

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

评论(1

酒绊 2025-01-12 00:16:32

如果您没有像未初始化的 $name[0] 键这样的“DOH”时刻,您发布的代码应该可以工作。

但是,如果您想完全避免该问题,您可以使用 array_rand< /code>docs函数来挑选(伪)随机数组密钥:

$names = array('Peter', 'Paul', 'John');
echo $names[array_rand($names)];

或者,代替硬编码为 50作为随机范围内的最大值,为什么不尝试:

rand(0, count($names)-1);

Your posted code should work if you don't have "DOH" moments like an uninitialized $name[0] key.

However, if you want to avoid that problem altogether you could use the array_randdocs function to pick out a (pseudo) random array key:

$names = array('Peter', 'Paul', 'John');
echo $names[array_rand($names)];

Alternatively, instead of hard-coding in 50 as your max in the random range, why not try:

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