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