array_unique() Function
很多时候,在编写程序或开发时,我们需要过滤数组以删除重复项。PHP为我们提供了一个内建函数来实现这一点,使事情变得简单。array_unique()是PHP中的内置函数,该函数从数组中删除重复值。如果数组中有多个元素具有相同的值,那么将保留第一个出现的元素,并将从数组中删除该元素出现的所有其他元素。
同样,根据这个函数,当且仅当(string) $elem1 === (string) $elem2 (string) $elem2,即当元素的字符串表示相同时,两个元素被认为是相等的。
语法
1 | array array_unique($array , $sort_flags) |
注意:数组的键被保留。也就是说,输入数组中未删除元素的键在输出数组中是相同的。
参数:此函数接受两个参数,其中一个是必需的,另一个是可选的。这两个参数描述如下:
- $array:这个参数是必须提供的,它指定了要从中删除重复项的输入数组。
- $sort_flags:这是可选的参数。这个参数$sort_flags可以用来修改排序行为使用这些值:
- SORT_REGULAR:这是参数$sort_flags的默认值。这个值告诉函数正常比较项(不要更改类型)。
- SORT_NUMERIC:这个值告诉函数用数字比较各个项目。
- SORT_STRING:这个值告诉函数将项作为字符串进行比较。
- SORT_LOCALE_STRING:这个值告诉函数根据当前区域设置将项作为字符串进行比较。
返回值:array_unique()函数在从数组中删除所有副本后返回经过过滤的数组。
下面的程序演示了PHP中的array_unique()函数:
程序1
1 2 3 4 5 6 7 8 9 | <?php // Input Array $a=array("red", "green", "red", "blue"); // Array after removing duplicates print_r(array_unique($a)); ?> |
输出
1 2 3 4 5 6 | Array ( [0] => red [1] => green [3] => blue ) |
程序2
1 2 3 4 5 6 7 8 9 | <?php // Input array $arr = array("a"=>"MH", "b"=>"JK", "c"=>"JK", "d"=>"OR"); // Array after removing duplicates print_r(array_unique($arr)); ?> |
输出
1 2 3 4 5 6 | Array ( [a] => MH [b] => JK [d] => OR ) |
紧记要点
- array_unique()不打算用于多维数组。
- 保存输入数组的键。
- 根据这个函数,如果两个元素的字符串表示形式相同,则认为它们是相等的。
参考