PHP 打乱数组元素
答案
function shuffleArray($arr)
{
$n = count($arr);
for ($i = 0; $i < $n; $i++) {
$randPos = mt_rand(0, $n - 1);
if ($randPos != $i) {
$temp = $arr[$i];
$arr[$i] = $arr[$randPos];
$arr[$randPos] = $temp;
}
}
return $arr;
}
测试代码:
$arr = [1, 2, 3, 4, 5, 6, 7, 8];
$res = shuffleArray($arr);
// 输出(随机):[4,1,8,7,5,6,3,2]
echo json_encode($res);