What are the advantages and disadvantages of using a matrix-based approach for defining user permissions in PHP compared to a traditional level-based system?

Issue: When defining user permissions in PHP, using a matrix-based approach allows for more granularity and flexibility compared to a traditional level-based system. However, it can be more complex to implement and maintain.

// Matrix-based approach for defining user permissions in PHP

$permissionsMatrix = [
    'admin' => [
        'create_user' => true,
        'delete_user' => true,
        'update_user' => true,
        'view_user' => true,
    ],
    'editor' => [
        'create_post' => true,
        'update_post' => true,
        'delete_post' => true,
        'view_post' => true,
    ],
];

$userRole = 'admin';
$permission = 'delete_user';

if(isset($permissionsMatrix[$userRole][$permission]) && $permissionsMatrix[$userRole][$permission] === true){
    echo "User has permission to delete user.";
} else {
    echo "User does not have permission to delete user.";
}