为什么 array_rand()
返回 0?我怎样才能过滤掉0?我只想得到 1-20。
$range = range(1, 20);
$total = array();
for($i = 0; $i < 100; $i++){
shuffle($range);
array_push($total, array_rand($range, 3));
}
最佳答案
array_rand()
返回数组中的键,range()
构建了一个起始键为 0
的数组.尝试:
$range = array_combine($range = range(1, 20), $range);
或者将键视为值而不使用实际值:
$range = array_flip(range(1, 20));
但是,您已经打乱了数组,因此不需要 array_rand()
,只需从头开始切片 3:
$range = range(1, 20);
for($i = 0; $i < 100; $i++){
shuffle($range);
$total[] = array_slice($range, 0, 3);
}
关于php - array_rand 为什么会在 range(1, 20) 中得到 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42257761/