我在PHP中有一个关联数组,并且希望从中选择一个随机的键/值对。这是我到目前为止:从PHP关联数组中选择一个随机元素
初始化。
$locations = array();
遍历一个SQL查询,并添加键/缬氨酸对:
array_push($locations, "'$location_id' => '$location_name'");
后来,我选择阵列的随机指数:
$rand = array_rand($locations);
兰特只是一个数字。所以位置[$兰特]给了我类似的东西:
'1' => 'Location 1'
好,一个assoc数组元素。在这一点上,我不知道这ASSOC阵的钥匙,所以我尝试了以下几件事:这3次工作
foreach($locations[$rand] as $loc_id => $location_name) {
echo "$key : $value<br/>\n";
}
$loc_id, $location_name = each($locations[$rand]);
$location_name = $locations[key($rand)];
无。他们都抛出像“通过变量不是数组”的错误。
我确定有一些简单的1班轮可以从数组中抽取一个随机的键/值对。或者我的语法关闭。我真的很感激帮助。
你的问题是'array_push($ locations,''$ location_id'=>'$ location_name'“) ;'。代之以:'$ locations [$ location_id] = $ location_name;'。然后'array_rand($ location)'将返回一个随机的'$ location_id';你可以用'$ name = $ locations [$ location_id]'来获取名字。 – arnaud576875
你们都是正确的,当然 - 我只是选择了这一个BC我最好的工作与示例代码。是的,我非常尴尬的推动不正确。我在Perl中编写了一吨(w哈希),所以我应该知道更好!谢谢! – Jeff
不错,你救了我的一天 – RezaSh