php array_unique sorting behavior

Pramod Sivadas picture Pramod Sivadas · Aug 16, 2014 · Viewed 9.8k times · Source

I am checking the array_unique function. The manual says that it will also sort the values. But I cannot see that it is sorting the values. Please see my sample code.

$input = array("a" => "green", 3=>"red", "b" => "green", 1=>"blue", "red");
print_r($input);
$result = array_unique($input,SORT_STRING);
print_r($result);

The output is

Array
(
    [a] => green
    [3] => red
    [b] => green
    [1] => blue
    [4] => red
)
Array
(
    [a] => green
    [3] => red
    [1] => blue
)

Here the array $result is not sorted. Any help is appreciated.

Thank you Pramod

Answer

Suchit kumar picture Suchit kumar · Aug 16, 2014

array_unique:

Takes an input array and returns a new array without duplicate values.

Note that keys are preserved. array_unique() keeps the first key encountered for every value, and ignore all following keys.

you can try this to get the result:

<?php 
$input = array("a" => "green", 3=>"red", "b" => "green", 1=>"blue", "red");
print_r($input);
$result = array_unique($input);
print_r($result);
asort($result);
print_r($result);