Объединить два массива, если одно из значений равно ключу

Здравствуйте, у меня есть два массива: один $ 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)
);

РЕДАКТИРОВАТЬ:
То, что я сделал до сих пор, но не смог получить результат.

foreach ($roles as $key => $value) {
foreach($permissions as $row) {
if($key == $row['RoleId'])
$perm[$key][] = $row;
}
}

0

Решение

в $roles у вас есть идентификаторы ролей чисел 1,2,3,4,5,6,7

в $permissions у вас есть идентификаторы ролей с номерами 22 или 23

конечно, он никогда не найдет соответствия

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]