How to remove duplicate values from array using PHP?

Last Updated : 23 Jul, 2025

In this article, we will discuss removing duplicate elements from an array in PHP. We can get the unique elements by using array_unique() function. This function will remove the duplicate values from the array.

Syntax:

array array_unique($array, $sort_flags);

Note: The keys of the array are preserved i.e. the keys of the not removed elements of the input array will be the same in the output array.

Parameters:

This function accepts two parameters that are discussed below:

  • $array: This parameter is mandatory to be supplied and it specifies the input array from which we want to remove duplicates.
  • $sort_flags: It is an optional parameter. This parameter may be used to modify the sorting behavior using these values:
    • SORT_REGULAR: This is the default value of the parameter $sort_flags. This value tells the function to compare items normally (don’t change types).
    • SORT_NUMERIC: This value tells the function to compare items numerically.
    • SORT_STRING: This value tells the function to compare items as strings.
    • SORT_LOCALE_STRING: This value tells the function to compare items as strings, based on the current locale.

Return Value:

The array_unique() function returns the filtered array after removing all duplicates from the array.

Using array_unique() function

The array_unique() function in PHP removes duplicate values from an array by comparing the values and removing subsequent occurrences. It returns a new array with only unique values while preserving the original order of elements. This function is simple and efficient for deduplicating arrays in PHP applications.

Example 1: PHP program to remove duplicate values from the array.

PHP
<?php
  
// Input Array
$a = array(
    "red",
    "green",
    "red",
    "blue"
);

// Array after removing duplicates
print_r(array_unique($a));
?>

Output:

Array
(
[0] => red
[1] => green
[3] => blue
)

Example 2: PHP program to remove duplicate elements from an associative array.

PHP
<?php
  
// Input array
$arr = array(
    "a" => "MH",
    "b" => "JK",
    "c" => "JK",
    "d" => "OR"
);

// Array after removing duplicates
print_r(array_unique($arr));
?>

Output:

Array
(
[a] => MH
[b] => JK
[d] => OR
)

Example 3: This is another way of removing the duplicates from the array using the PHP in_array() method.

PHP
<?php
  
// This is the array in which values
// will be stored after removing
// the duplicates
$finalArray = array();

// Input array
$arr = array(
    "a" => "MH",
    "b" => "JK",
    "c" => "JK",
    "d" => "OR"
);
foreach ($arr as $key => $value)
{
    // If the value is already not stored
    // in the final array
    if (!in_array($value, $finalArray)) $finalArray[$key] = $value;
} 
// End foreach
print_r($finalArray);

?>

Output:

Array
(
[a] => MH
[b] => JK
[d] => OR
)

Using array_filter()

To remove duplicate values from an array using `array_filter()`, apply a callback function that checks each element's index against its first occurrence. Return true only for the first occurrence to filter out duplicates.

Example: This example shows the use of the above-mentioned approach.

PHP
<?php
$array = [1, 2, 2, 3, 4, 4, 5];

$uniqueArray = array_filter($array, function($value, $key) use ($array) {
    return array_search($value, $array) === $key;
}, ARRAY_FILTER_USE_BOTH);

print_r(array_values($uniqueArray));
?>

Output
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Using Iteration and Comparison

To remove duplicate values from an array in PHP without using `array_unique()`, iterate through the array, check each value's existence in a separate array (`$uniqueArray`), and append it if not already present.

Example: This example shows the use of the above-mentioned approach.

PHP
<?php
function removeDuplicates($array) {
    $uniqueArray = [];
    
    foreach ($array as $value) {
        // Check if the value is already in $uniqueArray
        if (!in_array($value, $uniqueArray)) {
            $uniqueArray[] = $value;
        }
    }
    
    return $uniqueArray;
}

// Example array with duplicate values
$array = [1, 2, 2, 3, 4, 4, 5];

// Remove duplicates
$uniqueArray = removeDuplicates($array);

// Print the unique array
print_r($uniqueArray);
?>

Output
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Using array_flip() and array_values() Functions:

The array_flip() function in PHP exchanges keys with their associated values in an array, effectively removing duplicate values. `array_values()` is then used to reset the array indices, providing a cleaned-up array without duplicate values while maintaining the original order.

Example

PHP
<?php
$array = array("apple", "banana", "cherry", "apple", "banana");

$uniqueArray = array_values(array_flip($array));

print_r($uniqueArray);
?>

Output
Array
(
    [0] => 3
    [1] => 4
    [2] => 2
)

Using array_count_values()

The `array_count_values()` function counts all the values of an array and returns an associative array where keys are the original values and values are their counts. To remove duplicates, filter keys with a count of 1, and then use `array_keys()` to extract unique values.

Example:

PHP
<?php
$array = [1, 2, 2, 3, 4, 4, 5];

// Count values
$valueCounts = array_count_values($array);

// Filter to keep only values that appear once
$uniqueValues = array_keys(array_filter($valueCounts, function($count) {
    return $count === 1;
}));

print_r($uniqueValues);
?>

Output
Array
(
    [0] => 1
    [1] => 3
    [2] => 5
)
Comment