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.

Need help integrating this into your project?

Our team of expert developers can help you build your custom application from scratch.

Hire DigitalCodeLabs