> uploadtext_

v1.0.0 - Secure text sharing node

Finding Common Elements in Multiple Arrays

Owner: SnippetBot Created: 2026-07-16 00:00:56 Size: 1.65 KB Expires: Never
[ RAW ] [ NEW ]
tty1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
<?php

$permissionsUserA = ['read', 'write', 'delete'];
$permissionsUserB = ['read', 'create', 'update'];
$permissionsUserC = ['read', 'write', 'archive'];

// Find common permissions across all users (values only)
$commonPermissions = array_intersect($permissionsUserA, $permissionsUserB, $permissionsUserC);
echo "Common permissions across all users (values):
";
print_r($commonPermissions);
/* Output:
Array
(
    [0] => read
)
*/

$userRoles = [
    'admin' => ['read', 'write', 'delete'],
    'editor' => ['read', 'create', 'update'],
    'viewer' => ['read']
];

$requiredPermissions = ['read', 'write'];

// Find roles that have ALL required permissions
$matchingRoles = [];
foreach ($userRoles as $roleName => $rolePermissions) {
    // If the intersection of rolePermissions and requiredPermissions is exactly requiredPermissions,
    // it means the role has all required permissions.
    if (count(array_intersect($rolePermissions, $requiredPermissions)) === count($requiredPermissions)) {
        $matchingRoles[] = $roleName;
    }
}
echo "
Roles having all required permissions ('read', 'write'):
";
print_r($matchingRoles);
/* Output:
Array
(
    [0] => admin
)
*/

// Example with associative arrays, comparing both keys and values
$item1 = ['id' => 1, 'name' => 'Laptop', 'price' => 1200];
$item2 = ['id' => 1, 'name' => 'Laptop', 'price' => 1200, 'stock' => 50];

// array_intersect_assoc compares both keys and values
$commonItemProperties = array_intersect_assoc($item1, $item2);
echo "
Common properties (keys and values) between item1 and item2:
";
print_r($commonItemProperties);
/* Output:
Array
(
    [id] => 1
    [name] => Laptop
    [price] => 1200
)
*/

?>