我的阵列;
$array=array("x","y","z","t","k");
例如,我想从这个数组得到10个结果,并希望这个结果是有序的(数组顺序)&有随机数值。
像这样:但没有结果:z | x或t | y | k(因为它们不是数组顺序。)
答案 0 :(得分:1)
尝试以下功能:
function get_random_list($arr, $count) {
$result = array();
for ($i = 0; $i < $count; $i++) {
$length = mt_rand(1, count($arr));
$keys = (array)array_rand($arr, $length);
sort($keys);
$items = array();
foreach ($keys as $key) {
$items[] = $arr[$key];
}
$result[] = $items;
}
return $result;
}
用法:
echo implode("<br />", array_map(function($arr) {
return implode("|", $arr);
}, get_random_list($array, 10)));
示例输出值:
k<br />x<br />y<br />x|y|z|t|k<br />z<br />y|t|k<br />z<br />y|z<br />z<br />y|k