[英]shuffle() doesn't work as expected with an associative array
我想做一個測驗,這是我的數組:
$questions = array("1+1"=>2,"5+2"=>7,"5+9"=>14,"3+5"=>8,"4+6"=>10,"1+8"=>9,"2+7"=>9,
"6+7"=>13,"9+3"=>12,"8+2"=>10,"5+5"=>10,"6+8"=>14,"9+4"=>13,"7+8"=>15,
"8+9"=>17,"4+8"=>12,"7+1"=>8,"6+3"=>9,"2+5"=>7,"3+4"=>7);
shuffle($questions);
foreach($questions as $key => $value) {
echo $key.' ';
}
但是,從上面的代碼中,我得到如下輸出:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 //Wrong!
為什么我得到這個輸出? 我想得到每一個問題。 我應該如何得到它?
¿洗牌關聯數組? 這對我有用:
function shuffle_assoc($array) {
$keys = array_keys($array);
shuffle($keys);
foreach($keys as $key) {
$new[$key] = $array[$key];
}
return $new;
}
用:
Print_r(shuffle_assoc($my_array));
輸入:
$my_array = Array
(
[Nicaragua] => 62
[Mexico] => 50
[France] => 23
)
輸出:
Array
(
[France] => 23
[Nicaragua] => 62
[Mexico] => 50
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.