PHP
Remove Duplicate Associative Array Items by Key
Learn how to efficiently remove duplicate elements from an array of associative arrays in PHP, ensuring uniqueness based on a specific key.
<?php
function removeDuplicatesByKey(array $array, string $key): array
{
$uniqueKeys = [];
$result = [];
foreach ($array as $item) {
if (isset($item[$key]) && !in_array($item[$key], $uniqueKeys)) {
$uniqueKeys[] = $item[$key];
$result[] = $item;
}
}
return $result;
}
$users = [
['id' => 1, 'name' => 'Alice'],
['id' => 2, 'name' => 'Bob'],
['id' => 1, 'name' => 'Alice Duplicate'], // Duplicate ID
['id' => 3, 'name' => 'Charlie'],
['id' => 2, 'name' => 'Bob Duplicate'], // Duplicate ID
];
$uniqueUsers = removeDuplicatesByKey($users, 'id');
print_r($uniqueUsers);
/* Expected output:
Array
(
[0] => Array
(
[id] => 1
[name] => Alice
)
[1] => Array
(
[id] => 2
[name] => Bob
)
[2] => Array
(
[id] => 3
[name] => Charlie
)
)
*/
?>
How it works: This snippet provides a `removeDuplicatesByKey` function that filters an array of associative arrays, keeping only the first occurrence of each unique value for a specified key. It iterates through the array, tracking unique key values encountered and building a new result array.