我有一个assoc数组,它来自一个
mysqli_fetch_assoc()
功能。我会从它的随机键中得到一个值...
基本上,我只需要从数据库中随机选择一个ICAO即可。
所以我找到了这个功能
function shuffle_assoc($list) {
if (!is_array($list)) return $list;
$keys = array_keys($list);
shuffle($keys);
$random = array();
foreach ($keys as $key) {
$random[$key] = $list[$key];
}
return $random;
}
我尝试编码:
$sql = "SELECT icao FROM airport_list";
$result = mysqli_query($conn, $sql);
while ($airports = mysqli_fetch_assoc($result)){
$random_airport = shuffle_assoc($airports);
}
var_dump($random_airport);
“ var-dumped”结果是
array(1) { ["icao"]=> string(4) "ZYTX" }
这似乎是一个在重新加载页面时永远不会改变的数组,所以...我认为这是错误的。
答案 0 :(得分:3)
您可以通过修改查询从表中拉出随机行来简化整个过程,如下所示:
SELECT icao FROM airport_list ORDER BY RAND() LIMIT 1