在foreach中的第三个元素之后洗牌数组?PHP

在foreach中的第三个元素之后洗牌数组?PHP,php,arrays,shuffle,Php,Arrays,Shuffle,我需要在第三个元素之后洗牌$items 结果应该是: 12367985 4 我的密码是: <?php $items= range(1, 10); shuffle($items); foreach($items as $v): ?> ... <?php endforeach; ?> ... 在stackoverflow或google中找不到任何解决方案。 我该怎么做 提前感谢。我们可以获得前3个元素,然后洗牌其他元素 $items = ra

我需要在第三个元素之后洗牌$items

结果应该是: 12367985 4

我的密码是:

<?php
    $items= range(1, 10); shuffle($items); foreach($items as $v): 
?>
   ...
<?php 
  endforeach; 
?> 

...

在stackoverflow或google中找不到任何解决方案。
我该怎么做



提前感谢。

我们可以获得前3个元素,然后洗牌其他元素

$items = range(1, 10);
for (var $i = 0; $i < 3; $i++) {
   $aRes[] = array_shift($items); 
}
shuffle($items);
foreach($items as $v) {
   $aRes[] = $v;
}
$items=范围(1,10);
对于(变量$i=0;$i<3;$i++){
$aRes[]=数组移位($items);
}
洗牌($项目);
foreach(项目为$v){
$aRes[]=$v;
}

将数组拆分为两部分,然后将它们合并在一起

编辑;我现在使用array_splice在3处拆分数组,然后洗牌剩余的数组,然后合并它们

$items = range(1,10);
$items1= array_splice($items, 0,3);
shuffle($items);

$result = array_merge($items1, $items);
Var_dump($result);

它简单而漂亮,但是如果我的物品不使用range,我该怎么做呢?@ArikDonowan然后你可以使用从原始物品中获取$item1和$item2。正如Magnus所说,数组切片。更新了我在答案中使用的答案或拼接。@ArikDonowan可以吗?