Php Laravel foreach只对具有相同ID的项迭代一次

Php Laravel foreach只对具有相同ID的项迭代一次,php,laravel,Php,Laravel,我正在使用多对多关系检索用户。我只想在pivot中有两个条目的用户中循环一次。 e、 g 代码没有问题,只需使用all()或get()而不是first()。 或者,如果您有多个具有单个管理员的条目,请共享您的模型代码代码没有问题,只需使用all()或get()而不是first()。 或者,如果您有多个具有单个管理员的条目,请共享您的型号代码如果您不需要重复的用户条目,也可以使用不同的方法避免在$admin->users集合中重复: $admin = Admin::first(); $users

我正在使用多对多关系检索用户。我只想在pivot中有两个条目的用户中循环一次。 e、 g


代码没有问题,只需使用all()或get()而不是first()。
或者,如果您有多个具有单个管理员的条目,请共享您的模型代码

代码没有问题,只需使用all()或get()而不是first()。
或者,如果您有多个具有单个管理员的条目,请共享您的型号代码

如果您不需要重复的用户条目,也可以使用不同的方法避免在
$admin->users
集合中重复:

$admin = Admin::first();
$users = $admin->users()->distinct()->get();

如果您不需要重复的用户条目,也可以使用distinct方法避免
$admin->users
集合中的重复项:

$admin = Admin::first();
$users = $admin->users()->distinct()->get();

我自己找到了解决办法。array\u unique($array)是解决方案。我将用户ID推送到$users数组,并使用array_unique($users)。 参考文献


我自己找到了解决方案。array\u unique($array)是解决方案。我将用户ID推送到$users数组,并使用array_unique($users)。 参考文献



if-statement是什么阻止您执行
if
-statement?如果id不是您需要的,则在循环中继续。正如@ManuelMannhardt所建议的,您可以将id存储在循环中的数组中,并且在每个循环中,您可以检查数组中是否存在该id。如果存在->跳过,如果没有->做你想做的事情。@REd fx2你能给出代码示例吗?@KamranAli这是面向对象编程的一般建议,我不练习php。但这些网站可能会对你有所帮助:@Red fx谢谢你的帮助,实际上我需要一次显示集合对象中有重复条目的项目。因此需要一些编程技术来计算相同ID的项目并取其中一个。什么阻止你执行
if
-语句?如果id不是您需要的,则在循环中继续。正如@ManuelMannhardt所建议的,您可以将id存储在循环中的数组中,并且在每个循环中,您可以检查数组中是否存在该id。如果存在->跳过,如果没有->做你想做的事情。@REd fx2你能给出代码示例吗?@KamranAli这是面向对象编程的一般建议,我不练习php。但这些网站可能会帮到你:@Red fx谢谢你的帮助,实际上我需要一次显示集合对象中有重复条目的项目。因此需要一些编程技术来计算相同ID的项目并取一个。我用过,对我不起作用。我也用过unique(),但我用过相同的问题,对我不起作用。我也使用了unique(),但问题相同
 <?php
 $input = array(4, "4", "3", 4, 3, "3");
 $result = array_unique($input);
 var_dump($result);
 ?>