PHP array_unique()函数去除重复元素

定义和用法

array_unique() 函数移除数组中的重复的值,并返回结果数组。

当几个数组元素的值相等时,只保留第一个元素,其他的元素被删除。

返回的数组中键名不变。

语法

array_unique(array)
参数描述
array 必需。规定输入的数组。

说明

array_unique() 先将值作为字符串排序,然后对每个值只保留第一个遇到的键名,接着忽略所有后面的键名。这并不意味着在未排序的 array 中同一个值的第一个出现的键名会被保留。

提示和注释

注释:被返回的数组将保持第一个数组元素的键类型。

例子

<?php  $a=array("a"=>"Cat","b"=>"Dog","c"=>"Cat");  print_r(array_unique($a));  ?>

输出:

Array ( [a] => Cat [b] => Dog )
存在问题:看下面的例子
数组a原来的内容如下:[0] => 大兵 :[1] => 大兵 :[2] => 大兵 :[3] => 大兵 [4] => 萧然 [5] => 测试
$b=unique($a);
然后输出:print_r($b);结果如下:
Array ( [0] => 大兵 [4] => 萧然 [5] => 测试 )
此后,如果这样使用$b,就会出现问题:
$i=0;
while($b[$i])
{ ……$i++;}
因为里面只有第0,4,5元素,所以这样循环到第二个元素就会出现问题。解决方法是加一个sort($b);然后再循环就可以了,此时再输出:
 sort($b);
 print_r($b);
 结果如下:
 Array ( [0] => 大兵 [1] => 测试 [2] => 萧然 ) 
posted @ 2013-09-17 10:21  ﹏Sakura  阅读(3003)  评论(0编辑  收藏  举报