2 回答

TA貢獻1806條經(jīng)驗 獲得超8個贊
您可以將數(shù)組拆分為兩部分。
隨機播放第一部分并保持第二部分不變。
合并這兩個部分以獲得您的結(jié)果。
片段:
<?php
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$randomize = array_slice($input,0,3);
$keep_safe = array_slice($input,3);
shuffle($randomize);
print_r(array_merge($randomize,$keep_safe));
演示: https ://3v4l.org/HVMc8

TA貢獻1858條經(jīng)驗 獲得超8個贊
您可以使用這個簡單的函數(shù)來檢索您想要的輸出:
function arrayRangeRand(&$arr, $s, $e){
$tmp = [];
for($i=$s;$i<=$e;$i++){
$tmp[] = $arr[$i];
}
shuffle($tmp);
foreach($tmp as $ind=>$val){
$arr[$s+$ind] = $val;
}
}
arrayRangeRand($data, $firstInd, $lastInd0);
這里for循環(huán)收集值from-to,然后將它們打亂,然后用引用索引的新值替換舊值。&改變你的原始數(shù)據(jù)數(shù)組,所以,你不需要返回任何東西。
- 2 回答
- 0 關(guān)注
- 98 瀏覽
添加回答
舉報