In what scenarios would it be more efficient to write a custom function to handle duplicate values instead of relying on the DISTINCT keyword in a query?

When dealing with duplicate values in a database query, it may be more efficient to write a custom function to handle these duplicates instead of relying on the DISTINCT keyword. This is especially true when the DISTINCT keyword is causing performance issues due to large result sets or complex queries. By writing a custom function, you have more control over how duplicates are handled and can potentially optimize the process for better performance.

// Custom function to handle duplicates in query results
function handleDuplicates($results) {
    $uniqueResults = [];
    
    foreach ($results as $result) {
        $key = $result['id']; // Assuming 'id' is the unique identifier field
        if (!array_key_exists($key, $uniqueResults)) {
            $uniqueResults[$key] = $result;
        }
    }

    return array_values($uniqueResults);
}

// Example usage
$queryResults = [
    ['id' => 1, 'name' => 'John'],
    ['id' => 2, 'name' => 'Jane'],
    ['id' => 1, 'name' => 'Doe'], // Duplicate entry
];

$uniqueResults = handleDuplicates($queryResults);

print_r($uniqueResults);