3 回答
TA贡献1820条经验 获得超2个赞
要检查期望的ID是否在您的数组中:
if(in_array($studentLocations, $preceptorLocations)){
//Your code
}
in_array()函数检查数组中是否存在值。假设$ studentsLocations是一个整数。如果是数组
if (!array_diff($studentLocations, $preceptorLocations)) {
//Your code
};
array_diff计算数组的差。
- - 更新 - -
您可以使用laravel intersect()方法来检查第二个集合中是否存在第一个集合的某些元素。在这种情况下,计数函数的返回值大于0。
if (count($studentLocations->intersect($preceptorLocations))>0) {
//Your code here
}
TA贡献1786条经验 获得超11个赞
您可以通过whereIn()在查询中使用来完全避免使用array_intersect 。
$student = User::find($id);
$studentLocations = $student->hospital()->pluck('id')->toArray();
$result = Auth::user()->hospital()->whereIn('id',$studentLocations)->pluck('id')->toArray();
TA贡献1827条经验 获得超8个赞
我的原始帖子有一个无法解决的问题,我用基本术语进行了描述,然后使用实际代码进行了描述。
$student = User::find($id);
$studentLocations = $student->hospital()->pluck('id');
$preceptorLocations = Auth::user()->hospital()->pluck('id');
$result = array_intersect($studentLocations, $preceptorLocations);
解决方案是在Laravel中pluck返回一个对象。通过将toArray()变量添加到末尾,它现在可以完美运行。
$student = User::find($id);
$studentLocations = $student->hospital()->pluck('id')->toArray();
$preceptorLocations = Auth::user()->hospital()->pluck('id')->toArray();
$result = array_intersect($studentLocations, $preceptorLocations);
- 3 回答
- 0 关注
- 117 浏览
添加回答
举报