2

我有一个这样的数组:

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

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

新数组必须是:

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

这样做的功能已经是什么了。?

4

3 回答 3

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

于 2012-10-13T15:25:42.850 回答
0

使用array_unique()

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

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

于 2012-10-13T15:27:43.690 回答
0

您可以使用array_unique但请注意,这将not work用于case sensitive array诸如

 $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)));
}
于 2012-10-13T15:53:45.893 回答