【发布时间】:2023-03-26 05:00:01
【问题描述】:
使用 eloquent,我正在查询两组数据,如下所示:
$all_perms = Permission::all(); //all permissions
$role_perms = Auth::user()->roles()->permissions; //permissions belonging to a role
$role_perms 是$all_perms 的子集,我想要循环这两个数组并生成一个新数组,其中包含已分配给角色的所有权限以及尚未分配给角色的权限。
我所做的是在 foreach 循环中遍历两个数组,如果任何一个数组都属于这两个集合,我通过向数组添加一个对应值为 1 的 check 键来标记它,以便我可以识别为已分配给角色的权限。
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(): 参数 #1 不是数组
它们是更好的方法吗?或者我可以在这个上做些什么来使它工作?
感谢您的帮助
【问题讨论】: