随机播放数组,但前三个元素除外


Shuffle array except for the first three elements

我在PHP中有一个数组:

Array (
    [0] => Red
    [1] => Green
    [2] => Blue
    [3] => Yellow       
    [4] => Purple
    [5] => Orange
    [6] => Brown )

我希望这个数组被洗牌,除了前三个元素([0][1][2] 应该保持在同一位置)。 例如:

Array (
    [0] => Red
    [1] => Green
    [2] => Blue
    [3] => Brown        
    [4] => Yellow
    [5] => Purple
    [6] => Orange )

我知道如何使用shuffle( $array );洗牌整个数组,但我需要建议如何不洗牌该数组的前三个元素。谢谢!

这是你可以做的:

$a=array("red","green","blue","yellow","brown");
$partA = array_slice($a,0,3);
$partB = array_slice($a,3,sizeof($a));
shuffle($partB);
$result = array_merge($partA, $partB);
print_r($result);