php-内部foreach未重置
我已经对此进行了研究,但运气不好 我最近访问并尝试在内部foreach中添加php-内部foreach未重置,php,laravel,foreach,Php,Laravel,Foreach,我已经对此进行了研究,但运气不好 我最近访问并尝试在内部foreach中添加unset($var)和reset($var),但两者都没有重置$var 关于这一点的最后一个问题是大约两年前提出的,对我也没有帮助。这里是链接 这是我的密码: @foreach($employees as $employee) @foreach($Users as $user) @if($employee->id == $user->user_id) @bre
unset($var)
和reset($var)
,但两者都没有重置$var
关于这一点的最后一个问题是大约两年前提出的,对我也没有帮助。这里是链接
这是我的密码:
@foreach($employees as $employee)
@foreach($Users as $user)
@if($employee->id == $user->user_id)
@break
@else
<option value="{{ $employee->id }}" branch="{{ $employee->branch }}" department="{{ $employee->department }}">{{ $employee->first_name }} {{ $employee->last_name }}</option>
@break
@endif
@endforeach
@endforeach
@foreach($employees作为$employee)
@foreach($Users作为$user)
@如果($employee->id==$user->user\u id)
@中断
@否则
{{$employee->first_name}{{{$employee->last_name}
@中断
@恩迪夫
@endforeach
@endforeach
我的预期结果是员工选项列表(可在代码的@else
部分找到),而不包含现有用户(@if
部分代码)
我的代码只跳过第一个现有用户。我预计其中四个会被跳过
顺便说一句,我正在使用Laravel。
break
将打破整个循环!相反,请使用继续。下面是发生的情况。当您使用break
时,如果第一个员工与第一个用户匹配,它将中断该循环,并且不会在接下来的4个员工中继续
如果您要使用继续
,它将只跳过那些也是用户的员工(真正的部分)!将break
替换为continue
,如果有帮助,请告诉我!根据你的问题,这一定是它 阅读代码时,您有一个员工集合/数组和一个用户集合/数组,并且您希望显示所有尚未成为用户的员工。第一步,我说得对吗
如果是,我们假设$employees
和$users
是集合
$employees = Employee::get();
$users = User::get();
//Get all employees IDs
$ids = $users->pluck('id');
//Get all employees that are NOT users
$ghostEmployees = $employees->whereNotIn('user_id', $ids->all());
在您看来,您可以直接通过Ghostemployes循环
@foreach( $ghostEmployees as $employee )
<option value="{{ $employee->id }}">
{{ $employee->first_name }} {{ $employee->last_name }}
</option>
@endforeach
如果您仍然需要所有员工在页面的其他地方使用,请分别获取他们
$employees = Employee::get():
你能解释清楚你想做什么吗?已经使用了continue
先生,但这不是我想做的。如果我错了,请纠正我,在我的当前代码中,break
语句将停止内部foreach,并将外部foreach的指针移动到下一项。当我将第一个中断
更改为继续
时,所有员工都将添加到选项
元素中。请尝试使用条件$employee->id!=$用户->用户id
并删除其他部分以及中断
。看看会发生什么……我想要实现的是只让尚未在系统中注册为用户的员工注册。这就是为什么我要遍历它们(第一个foreach)并将它们与数据库中已经列出的(第二个foreach)进行比较。然后使用@Amr Aly给出的答案。它会成功的!感谢您深入了解如何直接在数据库中获取它们。我最终会这么做的。但是为什么我现在的代码不能正常工作呢?如果我错了,请纠正我,我看到的嵌套foreach
是当内部foreach
满足一定条件时,以及当返回到父foreach
时。其父级foreach
将移动其当前指针,并再次运行子级foreach
,并重置其参数。
$employees = Employee::get():