Здравствуйте, у меня есть два массива: одно $ role и второе $ разрешение. Я хотел бы сделать это, чтобы объединить эти два массива на основе ключа от ролей, если он равен значению из второго массива. Я не уверен, как это сделать. Я попытался использовать foreach, но я застрял в проверке значения, и назначение конечного результата должно быть чем-то похожее на $ rolePermissions.
// Roles indexed by ID
$roles = array(
1 => 'Administrator',
2 => 'Moderator',
3 => 'Admin',
4 => 'User',
5 => 'SuperUser',
6 => 'Accountant',
7 => 'God'
);
// Permissions indexed by ID
$permissions = array(5)
[
0 => array(2)
[
"PermissionName" => string(12) "Catalog-View"
"RoleId" => string(2) "22"
]
1 => array(2)
[
"PermissionName" => string(12) "Catalog-View"
"RoleId" => string(2) "23"
]
2 => array(2)
[
"PermissionName" => string(12) "Catalog-Edit"
"RoleId" => string(2) "22"
]
3 => array(2)
[
"PermissionName" => string(14) "Catalog-Delete"
"RoleId" => string(2) "22"
]
4 => array(2)
[
"PermissionName" => string(14) "Article-Delete"
"RoleId" => string(2) "22"
]
]
// Assign role IDs to permission IDs, array is indexed by role ID
$rolePermissions = array(
1 => array(1),
2 => array(1, 2),
3 => array(1, 2, 3)
);
EDIT: Что я сделал до сих пор, но не смог получить результат.
foreach ($roles as $key => $value) {
foreach($permissions as $row) {
if($key == $row['RoleId'])
$perm[$key][] = $row;
}
}
в $roles
role у вас есть идентификаторы ролей чисел 1,2,3,4,5,6,7
в $permissions
вас есть идентификаторы ролей чисел 22 или 23
конечно, он никогда не найдет соответствия