PHP 打乱数组元素

答案

  1. function shuffleArray($arr)
  2. {
  3. $n = count($arr);
  4. for ($i = 0; $i < $n; $i++) {
  5. $randPos = mt_rand(0, $n - 1);
  6. if ($randPos != $i) {
  7. $temp = $arr[$i];
  8. $arr[$i] = $arr[$randPos];
  9. $arr[$randPos] = $temp;
  10. }
  11. }
  12. return $arr;
  13. }

测试代码:

  1. $arr = [1, 2, 3, 4, 5, 6, 7, 8];
  2. $res = shuffleArray($arr);
  3. // 输出(随机):[4,1,8,7,5,6,3,2]
  4. echo json_encode($res);