Php数组_rand()打印变量名
我有一个数组,其中充满了不同的谚语,我试图输出一个随机的谚语。我的程序打印出随机的说法,但有时它打印出分配给说法的变量名,而不是实际的说法,我不知道为什么Php数组_rand()打印变量名,php,arrays,random,Php,Arrays,Random,我有一个数组,其中充满了不同的谚语,我试图输出一个随机的谚语。我的程序打印出随机的说法,但有时它打印出分配给说法的变量名,而不是实际的说法,我不知道为什么 $foo=Array('saying1', 'saying2', 'saying3'); $foo['saying1'] = "Hello."; $foo['saying2'] = "World."; $foo['saying3'] = "Goodbye."; echo $foo[array_rand($foo)]; 例如,它会按它应该的
$foo=Array('saying1', 'saying2', 'saying3');
$foo['saying1'] = "Hello.";
$foo['saying2'] = "World.";
$foo['saying3'] = "Goodbye.";
echo $foo[array_rand($foo)];
例如,它会按它应该的方式打印世界,但其他时候它会打印saying2。不确定我做错了什么。在开始时删除值。将第一行更改为:
$foo = array();
您所做的是将值“saying1”等放入数组中。你不希望这些值在那里。还可以使用以下命令删除索引值:
$foo[] = 'Hello.';
$foo[] = 'World.';
这简化了您的工作。您在第一行以错误的方式声明了数组。 如果要将阵列用作关联阵列,请执行以下操作:
$foo=Array('saying1' => array (), 'saying2' => array(), 'saying3' => array());
或者,您可以选择Kainaw给出的非关联样式
编辑:在非关联数组上调用此命令:
echo("<pre>"); print_r($foo); echo("</pre>");
根据@Answers\u Seeker所说的,要使代码按预期的方式工作,您必须使用以下方法之一重新声明并初始化数组:
$foo=array();
$foo['saying1'] = "Hello.";
$foo['saying2'] = "World.";
$foo['saying3'] = "Goodbye.";
或者这个:
echo $foo[array_rand($foo)];
然后,要随机打印内容:
$foo=array();
$foo['saying1'] = "Hello.";
$foo['saying2'] = "World.";
$foo['saying3'] = "Goodbye.";
echo $foo[array_rand($foo)];