Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel rand()不包括数字_Php_Laravel - Fatal编程技术网

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(…)
并将其替换为just
pulk('port')
btw您可以删除
select(…)->get()->pulk(…)
并将其替换为just
pulk('port')
btw