使用侃侃而谈,我查询两组数据,像这样:比较foreach循环laravel PHP中关联数组
$all_perms = Permission::all(); //all permissions
$role_perms = Auth::user()->roles()->permissions; //permissions belonging to a role
$role_perms
是$all_perms
一个子集,我要的是循环数组或用出来包含已分配给角色的所有权限的新数组以及尚未分配给角色的数组。
我所做的是循环遍历两个数组在foreach循环中,如果任何一个数组属于两个集合,我通过添加一个check
键并将对应的值1添加到数组来标记它,以便我可以识别为已分配给角色的权限。
foreach ($role_perms as $role_perm) {
foreach ($all_perms as $key => $value) {
if (array_diff_assoc($all_perm, $role_perm)) {
$all_perm['check'] = 1;
}
}
}
,但它不断抛出的错误:
array_diff_assoc(): Argument #1 is not an array
他们是这样做的更好的方法?或者我能做些什么来使它工作?
感谢您的任何帮助