php数组(十六) array_unique

array_unique — 移除数组中重复的值

 

array_unique(array $arrayint $sort_flags = SORT_STRING): array

array_unique() 接受 array 作为输入并返回没有重复值的新数组。

注意键名保留不变。array_unique() 先将值作为字符串排序,然后对每个值只保留第一个遇到的键名,接着忽略所有后面的键名。这并不意味着在未排序的 array 中同一个值的第一个出现的键名会被保留。

 

参数:

array

  • 输入的数组。

sort_flags

  • 第二个可选参数sort_flags 可用于修改排序行为:

排序类型标记:

  • SORT_REGULAR - 按照通常方法比较(不修改类型)
  • SORT_NUMERIC - 按照数字形式比较
  • SORT_STRING - 按照字符串形式比较
  • SORT_LOCALE_STRING - 根据当前的本地化设置,按照字符串比较。

 

1、首先对值进行排序,保留值出现的对应的第一个key

1
2
3
4
5
<?php
$input = array("a" => "green", "red", "b" => "green", "blue", "red");
$result = array_unique($input);
print_r($result);
?>

 输出:blue出现在了red之后

1
2
3
4
5
6
Array
(
    [a] => green
    [0] => red
    [1] => blue
)

 

2、值包括字符串”4“和数值4,去重时,哪个在前保留哪个

1
2
3
4
5
<?php
$input = array("4", 4,   4, 3, "3", "3", 0, "");
$result = array_unique($input);
var_dump($result);
?>

 输出:

1
2
3
4
5
6
7
8
9
10
array(4) {
  [0]=>
  string(1) "4"
  [3]=>
  int(3)
  [6]=>
  int(0)
  [7]=>
  string(0) ""
}

 

3、按照不同的形式比较

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$input = array("b", 0, "");
echo "normal";
$result = array_unique($input, SORT_REGULAR); // 0 == “”
var_dump($result);
 
echo "numeric";
var_dump(intval("b"));
$result = array_unique($input, SORT_NUMERIC); // b == 0
var_dump($result);
 
 
echo "string";
$result = array_unique($input, SORT_STRING); //保留所有
var_dump($result);
 
?>

 输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
normal
array(2) {
  [0]=>
  string(1) "b"
  [2]=>
  string(0) ""
}
numeric
 int(0)
array(1) {
  [0]=>
  string(1) "b"
}
string
array(3) {
  [0]=>
  string(1) "b"
  [1]=>
  int(0)
  [2]=>
  string(0) ""
}

 

posted on   1450811640  阅读(52)  评论(0编辑  收藏  举报

编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示