PHP中的array_unique函数使用方法介绍。
array_unique函数是一种PHP内置的数组函数,用于去重数组中的元素,并返回一个新的数组,新数组中仅包含原数组中非重复的元素。array_unique函数采用一维数组作为其参数,返回结果也是一维数组。
array_unique函数语法
array array_unique ( array $array , int $sort_flags = SORT_STRING)
参数说明:
array:必选参数,指定要去重的一维数组。
sort_flags:可选参数,指定去重后的返回数组怎样排列。默认为SORT_STRING,即按照字符串顺序排列。也可以选择不排序,或根据数值大小排序。取值有以下三种:
SORT_REGULAR:按照普通类型比较来排序。
SORT_NUMERIC:按照数值类型比较来排序。
SORT_STRING:按照字符串类型来排序。
注意:
参数sort_flags并不是用来控制去重的,它只是用来控制去重后的数组排序方式。
array_unique函数实例解析
首先,定义一个含有重复元素的给数组:
$first_arr = array(1,2,3,3,4,5,5,6);
使用array_unique函数去重
$new_arr = array_unique($first_arr);
打印新数组:
print_r($new_arr);
页面输出如下:
Array([0] => 1[1] => 2[2] => 3[4] => 4[5] => 5[7] => 6)
可以看到,原数组中的重复元素已经被去掉了,并且返回了一个新数组。关于原数组的顺序和去重后数组的顺序之间的关系,array_unique函数手册的说明是:
“The returned array will preserve the order of the elements in the original array.”
即:函数返回的数组将保留源数组中元素的顺序。这就解释了为什么4和5的位置改变了。
如果原数组中包含非本质相同的元素,如字符串“1”和整型1,也可以使用sort_flags参数进行排序。这个参数将会影响到去重后的数组。
例如:
$second_arr = array(1,2,3,3,4,5,5,6,'1','2');
将字符串和整型的元素同时去重:
$new_arr_2 = array_unique($second_arr,SORT_REGULAR);
打印新数组:
print_r($new_arr_2);
页面输出如下:
Array([0] => 1[1] => 2[2] => 3[4] => 4[5] => 5[7] => 6[8] => '1'[9] => '2')
从结果可以看出,排序方式为SORT_REGULAR时,字符串和整型1都分别被保留了下来,并且数组的顺序没有发生改变。
总结
PHP中的array_unique函数是一个能够去重一维数组的常用函数,使用方法非常简单。需要注意的是,它的返回结果是一个新的数组,且返回数组会保留源数组中元素的顺序。当原数组中包含非本质相同元素时,可以使用sort_flags参数进行排序。
