如何从阵列中删除重复的项目

时间:2012-10-13 15:24:53

标签: php arrays duplicates

我有一个这样的数组:

$names = array('John Doe','Marc','Rudolph', 'John Doe','Steve', 'Marc');

如何使用PHP删除重复的名称?

新数组必须是:

$names = array('John Doe','Marc','Rudolph','Steve');

这样做的功能是什么。?

3 个答案:

答案 0 :(得分:3)

请先检查php.net手册。

$names = array('John Doe','Marc','Rudolph', 'John Doe','Steve', 'Marc');
$names = array_unique($names);

http://php.net/manual/en/function.array-unique.php

答案 1 :(得分:0)

使用array_unique()

$myArray = array(....);
$uniqueArray = array_unique( $myArray );

请参阅文档:http://php.net/manual/en/function.array-unique.php

答案 2 :(得分:0)

您可以使用array_unique但请注意not work case sensitive array {/ 1}}

 $names = array('John Doe','Marc','Rudolph','John doe','Steve','Marc');
                      ^-- Capital                 ^--Small      

如果你跑

var_dump(array_unique($names));

输出

array
  0 => string 'John Doe' (length=8)
  1 => string 'Marc' (length=4)
  2 => string 'Rudolph' (length=7)
  3 => string 'John doe' (length=8)
  4 => string 'Steve' (length=5

解决方案在检查是否唯一

之前,将所有内容转换为相同的案例
var_dump(arrayUnique($names));

输出

array
  0 => string 'John Doe' (length=8)
  1 => string 'Marc' (length=4)
  2 => string 'Rudolph' (length=7)
  4 => string 'Steve' (length=5)

使用的功能

function arrayUnique($array) {
    return array_intersect_key($array, array_unique(array_map("strtolower", $array)));
}