欢迎访问宙启技术站
智能推送

PHP中的array_unique函数使用方法介绍。

发布时间:2023-06-23 07:26:35

 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参数进行排序。