array_unique()

How to emove duplicate values from PHP Array? explain with example

PHP array_unique

PHP array_unique() function to remove duplicate elements or values from an array. If the array contains the string keys, then this function will keep the first key encountered for every value, and ignore all the subsequent keys.

Example:-

<?php
   $array = array("a" => "One", "Tow", "One" => "Tow", "Three", "Four");
 
   // Deleting the duplicate items
   $result = array_unique($array);
   print_r($result);
?> 

Output:-

Removing duplicate values from an array in PHP

To remove duplicate values from an array in PHP, use the array_unique() function. If two or more array values are the same, the first appearance will be kept, and the other will be removed. The returned array will hold the first array item’s key type.

Syntax:-

array_unique(array, [sortingType])

Arguments

The array parameter is required, which specifies the array.

sortingType parameter is optional, and it specifies how to compare the array element. The following are some soringType flags.

  1. SORT_REGULAR – compare items usually (don’t change types)
  2. SORT_NUMERIC – compare items numerically
  3. SORT_STRING – compare items as strings
  4. SORT_LOCAL_STRING – compare items as strings based on the current locale.

Example:-

<?php

   $data = [20, 21, 21, 22, 21, 23, 22, 46, 47];

   print_r(array_unique($data));

?> 

Output:-

Associative Array in PHP array_unique() Function

Let’s pass the associative array to the array_unique function and see the output.

Example:-

<?php

    $data = ['a' => 'Vijay', 
        'b' => 'Amit',
        'd' => 'Vijay', 
        'f' => 'Amit', 
        'c' => 'Rahul', 
        'k' => 'Roshan', 
        'n' => 'Vijay'];
    $output = array_unique($data);
    print_r($output);

?> 

Output:-

Create a multidimensional array unique

You can create a multidimensional array unique for any single key index. 

Example:-

<?php

    function unique_multi_array($array, $key) { 
    $temp_array = array(); 
    $i = 0; 
    $key_array = array(); 
    
    foreach($array as $val) { 
        if (!in_array($val[$key], $key_array)) { 
            $key_array[$i] = $val[$key]; 
            $temp_array[$i] = $val; 
        } 
        $i++; 
    } 
    return $temp_array; 
  }
  
  $data = array( 
    0 => array("id"=>"1", "name"=>"Vijay",  "age"=>"26"), 
    1 => array("id"=>"2", "name"=>"Amit", "age"=>"25"), 
    2 => array("id"=>"1", "name"=>"Rahul",  "age"=>"26"), 
  ); 
  $output = unique_multi_array($data,'id');
  print_r($output);

?> 

Output:-