2 回答

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊
您可以將數(shù)組拆分為兩部分。
隨機(jī)播放第一部分并保持第二部分不變。
合并這兩個(gè)部分以獲得您的結(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貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊
您可以使用這個(gè)簡(jiǎn)單的函數(shù)來(lái)檢索您想要的輸出:
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)注
- 88 瀏覽
添加回答
舉報(bào)