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

时间:2017-11-24 07:49:17

标签: php laravel

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

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

 foreach($users as $user) {
 //Iterate through users that has different ids
 //Do not iterate over same user twice
}

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

https://laravel.com/docs/5.5/queries#selects

答案 2 :(得分:0)

我自己找到了解决方案。 array_unique($ array)是解决方案。我将用户ID推送到$ users数组并使用了array_unique($ users)。感谢php.net。 参考。 http://php.net/manual/en/function.array-unique.php

 <?php
 $input = array(4, "4", "3", 4, 3, "3");
 $result = array_unique($input);
 var_dump($result);
 ?>