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

详解PHP中的array_unique函数

发布时间:2023-06-17 09:53:09

array_unique函数是PHP中一个常用的数组去重函数,用于移除数组中重复的值。本篇文章将详细讲解该函数的使用方法、参数和返回值,并提供实例来展示其应用场景。

一、函数定义

array_unique(array $array [, int $sort_flags = SORT_STRING]): array|array[]

说明:该函数用于移除数组中重复的值,并返回一个新的数组。如果输入的数组是关联数组,则该函数保留键名和对应的键值。

二、参数解释

1. $array:必选参数,指定需要去重的数组。

2. $sort_flags:可选参数,用于选择排序方式。如果该参数未传递,则默认按照字符串类型排序。

排序方式常量如下:

SORT_REGULAR - 根据 PHP 的默认比较进行排序

SORT_NUMERIC - 根据数字比较进行升序排序

SORT_STRING - 根据字符串比较进行升序排序

SORT_LOCALE_STRING - 根据当前增强型的本地化算法比较进行字符串比较

SORT_NATURAL - 根据自然排序算法升序排序

SORT_FLAG_CASE - 可与 SORT_STRING 或 SORT_NATURAL 合并 (以不区分大小写的方式)

三、返回值

array_unique函数会返回一个新的数组,其中包含输入数组中无重复的值。如果输入的数组是关联数组,则该函数保留键名和对应的键值。这里需要注意的是,返回的数组中键名的顺序会发生改变。

四、使用实例

1. 数字型数组去重

示例代码如下:

$arr = array(1, 2, 3, 2, 4);

$res = array_unique($arr);

print_r($res);

运行结果如下:

Array

(

    [0] => 1

    [1] => 2

    [2] => 3

    [4] => 4

)

这里数组中有两个值为2的元素,去重后仅剩一个。返回的新数组中,键名发生了改变。

2. 字符串型数组去重

示例代码如下:

$arr = array('apple', 'banana', 'orange', 'banana', 'peach');

$res = array_unique($arr);

print_r($res);

运行结果如下:

Array

(

    [0] => apple

    [1] => banana

    [2] => orange

    [4] => peach

)

这里数组中有两个值为‘banana’的元素,去重后仅剩一个。返回的新数组中,键名发生了改变。

3. 关联数组去重

示例代码如下:

$arr = array(

    'fruit1' => 'apple',

    'fruit2' => 'banana',

    'fruit3' => 'orange',

    'fruit4' => 'banana',

    'fruit5' => 'peach'

);

$res = array_unique($arr);

print_r($res);

运行结果如下:

Array

(

    [fruit1] => apple

    [fruit2] => banana

    [fruit3] => orange

    [fruit5] => peach

)

这里数组中有两个键值对包含‘banana’的值,去重后仅剩一个。返回的新数组中,键名保持不变。

四、总结

array_unique函数是PHP中常用的数组去重函数,其使用方法简单、功能实用,可满足众多应用场景。需要注意的是,该函数返回的新数组中键名的顺序会发生改变,但输入的关联数组则不会出现该问题。