嘿伙計們,我遇到了這個奇怪的問題,如果我使用 foreach 它不會生成唯一的亂數,如果我使用 laravel 函式包含。它總是生成一個亂數
我很好奇這是怎么發生的
在下面查看我的代碼
#Main Function subscribers are an eloquent collection
foreach ($this->subscribers as $subscriber){
$subscriber->drawOrder = $this->generateRandomNumbers();
}
dd($this->subscribers->pluck('drawOrder'));
}
public function generateRandomNumbers()
{
$number = mt_rand(1, count($this->subscribers));
if ($this->checkIfUserHasDraw($number)) {
return $this->generateRandomNumbers();
}
return $number;
}
public function checkIfUserHasDraw($number)
{
//return $this->subscribers->contains('drawOrder', $number);
foreach ($this->subscribers as $user) {
return $user->drawOrder == $number;
}
}
輸出
0 => 3
1 => 5
2 => 1
3 => 5
4 => 1
如果我使用帶有唯一隨機值的注釋 contains 方法在哪里
這很奇怪。對此的任何想法都非常有幫助
uj5u.com熱心網友回復:
在 foreach 中,它僅在您立即回傳時檢查第一個用戶,以下內容將起作用:
public function checkIfUserHasDraw($number)
{
foreach ($this->subscribers as $user) {
if ($user->drawOrder == $number) {
return true;
}
}
return false;
}
但是包含幾乎相同,所以我會使用它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/467420.html
