打乱数组元素PHP版

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);

发表评论

电子邮件地址不会被公开。 必填项已用*标注

昵称 *