Is there a function in php to remove the duplicate string variables, for example there is "abcd,ab,cd,abc,abc", how to change it to "abcd,ab,cd,abc"?thanks.

12 Years
Discussion Span
Last Post by ShawnCplus

Straight from PHP.net regarding array_unique:


(PHP 4 >= 4.0.1, PHP 5)

array_unique -- Removes duplicate values from an array

array array_unique ( array array )

array_unique() takes input array and returns a new array without duplicate values.

Note that keys are preserved. array_unique() sorts the values treated as 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.Note: Two elements are considered equal if and only if (string) $elem1 === (string) $elem2. In words: when the string representation is the same.

The first element will be used.

Example 1. array_unique() example

$input = 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

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

The above example will output:

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


Is there a function in php to remove the duplicate string variables, for example there is "abcd,ab,cd,abc,abc", how to change it to "abcd,ab,cd,abc"?thanks.

To make it a bit clearer, heres the custom function.

// removes duplicate substrings between the seperator
function uniqueStrs($seperator, $str) {
    // convert string to an array using ',' as the seperator
    $str_arr = explode($seperator, $str);

    // remove duplicate array values
    $result = array_unique($str_arr);

    // convert array back to string, using ',' to glue it back
    $unique_str = implode(',', $result);

    // return the unique string
    return $unique_str;

// example use

// input string
$str = "abcd,ab,cd,abc,abc";
// seperator
$seperator = ',';
// use the function to save a unique string
$new_str = uniqueStrs($seperator, $str);
// display it
echo $new_str;

Quite useful by the way... thanks :cheesy:


This is turning out to be a good thread, I have found a need for this myself within the past few days. Thanks for the example :)

Now if I could only use array_unique on the 100 degree days we have been having here in Austin (grrr).


how to display a string in php without using echo command??
plz do reply me

Make your own thread, don't revive 4 YEAR OLD THREADS.

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.