PHP: array_unique() function

PHP: Removes duplicate values from an array

The array_unique() is used to remove duplicate values from an array.

Note: The keys are preserved. array_unique() sorts the values treated as a string at first, then will keep the first key encountered for every value, and ignore all following keys. It does not mean that the key of the first related value from the unsorted array will be kept.


(PHP 4 and above)


array_unique(array1, sort_flags)


Name Description Required /
array1 The input array. Required Array
sort_flags sort_flags is used to modify the sorting behavior using following values:
SORT_REGULAR - compare items normally.
SORT_NUMERIC - compare items numerically
SORT_STRING - compare items as strings
SORT_LOCALE_STRING - compare items as strings, based on the current locale
Optional Integer

Note: Two elements are considered equal if and only if (string) $elem1 === (string) $elem2 i.e. when the string representation is the same, the first element will be used.

Return value

The filtered array.

Value Type: Array


$fruits_list = array('Orange',  'Apple', ' Banana', 'Cherry', ' Banana');
$result = array_unique($fruits_list);


Array ( [0] => Orange [1] => Apple [2] => Banana [3] => Cherry ) 

Pictorial Presentation:

php function reference: array_unique() function

View the example in the browser

Practice here online :

See also

PHP Function Reference

Previous: array_sum
Next: array_unshift

Follow us on Facebook and Twitter for latest update.

PHP: Tips of the Day

Constants can be defined inside classes using a const keyword.


class Foo {
 const BAR_TYPE = "bar";
 // reference from inside the class using self::
 public function myMethod() {
 return self::BAR_TYPE;
// reference from outside the class using <ClassName>::
echo Foo::BAR_TYPE;



This is useful to store types of items.

class Logger {
 const LEVEL_INFO = 1;
 const LEVEL_WARNING = 2;
 const LEVEL_ERROR = 3;
 // we can even assign the constant as a default value
 public function log($message, $level = self::LEVEL_INFO) {
 echo "Message level " . $level . ": " . $message;
$logger = new Logger();
$logger->log("Info"); // Using default value
$logger->log("Warning", $logger::LEVEL_WARNING); // Using var
$logger->log("Error", Logger::LEVEL_ERROR); // using class



We are closing our Disqus commenting system for some maintenanace issues. You may write to us at reach[at]yahoo[dot]com or visit us at Facebook