Trích ra ngẫu nhiên một số phần tử của mảng
<?php
/**
* Hàm lấy ra ngẫu nhiên $n phần tử từ một mảng $arr
* Trong đó có $fix phần tử là các phần tử đầu tiên của mảng $arr
* (Thực chất số phần từ ngẫu nhiên chỉ là $n – $fix)
* @param array $arr Mảng các phần tử (e1, e2, e3)
* @param int $n Tổng số phần tử sẽ lấy ra
* @param int $fix Số phần tử lấy ra từ đầu mảng
* @return array Mảng các phần tử thu được
*/
function getRandomItems($arr, $n=5, $fix=3) {
#$arr = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17);
$total = count($arr);
if ($n >= $total) {
return $arr;
}
$ret = array();
for($i = 0; $i < $fix && $i < $total; $i++) {
$ret[] = $arr[$i];
unset($arr[$i]);
}
#echo implode(',', $ret);
#echo " – ";
#echo implode(',', $arr);
if ($n > $fix && $n < $total) {
$arrRandKey = array_rand($arr, $n – $fix);
foreach ($arrRandKey as $key) {
$ret[] = $arr[$key];
}
}
#echo "\n";
#echo implode(',', $ret);
return $ret;
}