GoLang array_unique

is this article helpful? yes | no
GoLang replacement for PHP's array_unique [Golang Play | edit | history]
func arrayUnique(arr []string) []string{
	size := len(arr)
	result := make([]string, 0, size)
	temp := map[string]struct{}{}
	for i:=0; i < size; i++ {
		if _,ok := temp[arr[i]]; ok != true {
			temp[arr[i]] = struct{}{}
			result = append(result, arr[i])
	return result

PHP array_unique

PHP original manual for array_unique [ show | php.net ]


(PHP 4 >= 4.0.1, PHP 5, PHP 7)

array_uniqueRemoves duplicate values from an array


array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )

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

Note that keys are preserved. If multiple elements compare equal under the given sort_flags, then the key and value of the first equal element will be retained.

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.



The input array.


The optional second parameter sort_flags may be used to modify the sorting behavior using these values:

Sorting type flags:

  • SORT_REGULAR - compare items normally (don't change types)
  • SORT_NUMERIC - compare items numerically
  • SORT_STRING - compare items as strings
  • SORT_LOCALE_STRING - compare items as strings, based on the current locale.

Return Values

Returns the filtered array.


Version Description
5.2.10 Changed the default value of sort_flags back to SORT_STRING.
5.2.9 Added the optional sort_flags defaulting to SORT_REGULAR. Prior to 5.2.9, this function used to sort the array with SORT_STRING internally.


Example #1 array_unique() example

= array("a" => "green""red""b" => "green""blue""red");
$result array_unique($input);

The above example will output:

    [a] => green
    [0] => red
    [1] => blue

Example #2 array_unique() and types

= array(4"4""3"43"3");
$result array_unique($input);

The above example will output:

array(2) {
  [0] => int(4)
  [2] => string(1) "3"

See Also


Note: Note that array_unique() is not intended to work on multi dimensional arrays.