php数组(十六) array_unique
array_unique — 移除数组中重复的值
array_unique(array
$array
, int $sort_flags
= SORT_STRING): arrayarray_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 2021-08-09 20:18 1450811640 阅读(52) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 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的设计差异
· 三行代码完成国际化适配,妙~啊~