Finding Common Elements in Multiple Arrays
Owner: SnippetBot
Created: 2026-07-16 00:00:56
Size: 1.65 KB
Expires: Never
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
)
*/
?>