Php Laravel rand()不包括数字
我的代码如下所示:Php Laravel rand()不包括数字,php,laravel,Php,Laravel,我的代码如下所示: $test = Hosting::where('status', 'active')->where('node', 'Full')->select('port')->get()->toArray(); while( in_array( ($n = mt_rand(1312,1319)), array($test) ) ); echo $n; $测试结果为: array:2 [▼ 0 => array:1 [▼ "port
$test = Hosting::where('status', 'active')->where('node', 'Full')->select('port')->get()->toArray();
while( in_array( ($n = mt_rand(1312,1319)), array($test) ) );
echo $n;
$测试结果为:
array:2 [▼
0 => array:1 [▼
"port" => 1315
]
1 => array:1 [▼
"port" => 1318
]
我想排除$test result中的随机数,现在是(13151318),我该怎么做?使用查询生成器:
$hosts = Hosting::where('status', 'active')
->where('node', 'Full')
->select('port')
->whereNotIn('port' mt_rand(1312,1319))
->get();
用雄辩的收集方法:
$hosts = Hosting::where('status', 'active')
->where('node', 'Full')
->select('port')
->get()
->whereNotIn('port' mt_rand(1312,1319));
使用查询生成器:
$hosts = Hosting::where('status', 'active')
->where('node', 'Full')
->select('port')
->whereNotIn('port' mt_rand(1312,1319))
->get();
用雄辩的收集方法:
$hosts = Hosting::where('status', 'active')
->where('node', 'Full')
->select('port')
->get()
->whereNotIn('port' mt_rand(1312,1319));
您可以在此处使用
do while
。我还添加了一个扁平化的端口阵列
$test=Hosting::where('status','active')
->其中('node','Full')
->拔毛('端口')
->toArray();
做{
$n=百万兰特(13121319);
}而(在数组中($n,$test));
echo$n;
我建议在循环之前检查可用端口,以防止无限循环,例如
if(空(数组_diff(范围(13121319),$test))){
抛出新\异常('没有可用端口');
}
您可以在此处使用do。我还添加了一个扁平化的端口阵列
$test=Hosting::where('status','active')
->其中('node','Full')
->拔毛('端口')
->toArray();
做{
$n=百万兰特(13121319);
}而(在数组中($n,$test));
echo$n;
我建议在循环之前检查可用端口,以防止无限循环,例如
if(空(数组_diff(范围(13121319),$test))){
抛出新\异常('没有可用端口');
}
此命令会产生没有端口号的收集结果。但我想要不保存在数据库中的随机数。意思是如果保存在数据库中,然后搜索另一个,直到得到一个未注明的编号。此命令将产生没有端口号的收集结果。但我想要不保存在数据库中的随机数。意思是如果保存在db中,然后搜索另一个,直到你得到一个未标注的数字;最好已经将它们从查询中排除。您尝试了哪些方法来实现这一点?$test
包含什么?您可能正在寻找;最好已经将它们从查询中排除。您尝试了哪些方法来实现这一点?$test
包含哪些内容?您可以删除select(…)->get()->pulk(…)
并将其替换为justpulk('port')
btw您可以删除select(…)->get()->pulk(…)
并将其替换为justpulk('port')
btw