我试图通过使用array_rand()选择现有数组的随机元素来重新创建数组。
但是,当使用以下代码并吐出数组时,我在引用它时得到一个未定义的索引错误。
数组为$city_users_trimmed
。
PHP代码:
$rand = array_rand($city_users_trimmed, 1);
$data = array($city_users_trimmed[$rand[0]]);
我知道$ city_users_trimmed中至少有一个元素,所以没有理由我明白为什么这不起作用。
我通过运行来测试它:
$data = array($city_users_trimmed[0]);
有效,因此$ city_users_trimmed数组中至少有一个元素。你看到有什么导致这个问题吗?谢谢。
答案 0 :(得分:3)
检查http://php.net/manual/en/function.array-rand.php
当只选择一个条目时,array_rand()返回随机条目的键。否则,随机条目的键数组是 返回。
所以$ rand是你的关键,而不是$ rand [0]
答案 1 :(得分:0)
根据文件
mixed array_rand(array $ array [,int $ num = 1])从数组中挑选一个或多个随机条目,并返回随机条目的一个或多个键。
当你问1个键时,$ rand是一个int
答案 2 :(得分:0)
$city_users_trimmed = array(1,2,3,4,5,6,6,7,8,8,9,90,8,6,5,4,5,76,78,75,643,54,543,53,43,5345,34534,535);
var_dump($city_users_trimmed);
$rand = array_rand($city_users_trimmed, 1);
var_dump($rand);
$data = array($city_users_trimmed[$rand[0]]);
var_dump($data);
由于“$ data = array($ city_users_trimmed [$ rand [0]])”,此代码将为您提供第5行中的Notice Undefined index; 你不能用一个简单的变量作为数组。 所以正确的代码将是
$city_users_trimmed = array(1,2,3,4,5,6,6,7,8,8,9,90,8,6,5,4,5,76,78,75,643,54,543,53,43,5345,34534,535);
var_dump($city_users_trimmed);
$rand = array_rand($city_users_trimmed, 1);
var_dump($rand);
$data = array($city_users_trimmed[$rand]);
var_dump($data);