Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php数组_rand()打印变量名_Php_Arrays_Random - Fatal编程技术网

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)];