【问题标题】:Select a variable from an array从数组中选择一个变量
【发布时间】:2014-06-13 18:31:48
【问题描述】:

我是 php 数组的新手。我找不到解决办法。

这是我的代码:

$animals = Array
            (
            1=>$duck,
            2=>$horse,
            3=>$rabbit
            );

            ForEach($animals As $animal) 
            {
                echo $animals[Array_Rand($animals)];
            }

现在我想从数组中选择一个合适的变量,就是$rabbit。

类似:

if($animal[3]){
                echo 'The rabbit just spawned';
            }

请告诉我如何使用 if 指令引用变量号 3(兔子)。

【问题讨论】:

  • if($animal[3]){ — 这个条件应该做什么?您是否要检查您刚刚选择的随机元素是否是兔子?还是别的什么?
  • echo Array_Rand($animals) == 3 ? 'The rabbit just spawned' : ''; – 像这样?
  • 是的,我创建了一个验证码。他们必须选择一只兔子。我不喜欢 number-ccaptcha :)

标签: php arrays variables if-statement refer


【解决方案1】:

我认为您不需要 for each 循环,只需从数组中随机选择:

https://eval.in/162384

$animals = Array
            (
            1=>'duck',
            2=>'horse',
            3=>'rabbit'
            );
$dieroll=array_rand($animals);
echo "The $animals[$dieroll] just spawned.";

结果:

这只鸭子刚刚产卵。

编辑:您提到要从数组中选择 3。然后你可以使用array_rand($x,3):

https://eval.in/162392

$animals = Array
            (
            1=>'duck',
            2=>'horse',
            3=>'rabbit',
            4=>'bear',
            5=>'moose'
            );
$dierolls=array_rand($animals,3);
// randomize the order of the dierolls:
shuffle($dierolls);
foreach($dierolls as $dieroll) {
    echo "Look out, it's a $animals[$dieroll]!\n";
};

给予:

小心,这是一只鸭子!

小心,这是一只兔子!

小心,是熊!

【讨论】:

  • 这很好,但只有鸭子产卵。我需要同时生成 3 只动物,如果有一只鸭子,它会显示“鸭子已生成”。
  • 为了使其更具可扩展性,您可以将 $dieroll=rand(1,3); 更改为 $dieroll=array_rand($animals); 以便数组更改,随机键也可以更改。
  • 谢谢。但是应该会生成 3 个怪物,而不仅仅是一个。
  • 是的,它将从数组中选择 3 个不同的记录。
  • 如果你想随机化它们出现的顺序,使用shuffle():eval.in/162400
猜你喜欢
  • 2021-10-22
  • 2015-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多