本文主要介绍了php数组重复数据删除的快速实现,并结合实例比较分析了PHP数组重复数据删除的各种常见操作技巧和注意事项。有需要的可以参考一下。
本文展示了PHP阵列重复数据删除的更快实现。分享给你,供你参考,如下:
概述
使用PHP的array_unique()函数可以传递一个数组,然后删除重复值并返回一个具有唯一值的数组。这个函数在大多数情况下都能很好地工作。但是,如果您尝试在大型数组中使用array_unique()函数,它会运行得更慢。
有一个更好更快的函数array_flip()代替使用array_unique()函数创建唯一数组。这个神奇的函数会交换数组中每个元素的键值,因为键值必须是唯一的,所以你会得到和array_unique()函数一样的结果。
PHP代码:
/*创建包含四个重复值的元素的数组*/
$array=array('绿色','蓝色','橙色','蓝色');
/*翻转数组,你将得到一个唯一键值的数组
数组('绿色'=0,'蓝色'=1,'橙色'=2);*/
$ array=array _ flip($ array);
/*然后再翻转一次,重新定位键和值,然后得到数组:array (0=' green ',1=' blue ',2=' orange ');*/
$ array=array _ flip($ array);
print_r($array)
运行结果:
排列
(
[0]=绿色
[3]=蓝色
[2]=橙色
)
因为我们已经删除了一些元素,数组看起来不像一个正常的序列。比如我们可能会得到:array(0='A ',2='B ',5=' C ');在某些情况下,这不是问题,但是如果需要数组的键值来保持数字的顺序,可以用一两种方法来解决键值乱序的问题。
使用array_merge修复数组的keys
添加array_flip后的函数会对数组的键值进行排序,并恢复成正常的顺序,比如0,1,2,3…
PHP代码:
$array=array('绿色','蓝色','橙色','蓝色');
$ array=array _ flip($ array);
$ array=array _ flip($ array);
/*使用array_merge()函数修复键值*/
$ array=array _ merge($ array);
print_r($array)
运行结果同上。
第二种方式,使用array_keys
注意,这种修复数组键值的方法比使用array_merge()函数稍快。还可以在最后一步中使用array_keys()函数(该函数返回翻转后的值)。然后当您翻转数组的值时,键值将按顺序创建。
PHP代码:
$array=array('绿色','蓝色','橙色','蓝色');
$ array=array _ flip($ array);
/*与第一个示例相同,但现在我们先提取数组的键值*/
$ array=array _ keys($ array);
print_r($array)
运行结果同上。
结论
很简单,与在大型数组中使用array_unique函数相比,它具有有效的性能提升。
PS:本站还有两款比较简单实用的在线文本去重复工具,推荐给大家使用:
在线重复数据删除工具:
http://tools.jb51.net/code/quchong
在线文本重复数据删除工具:
http://tools.jb51.net/aideddesign/txt_quchong
更多对PHP相关内容感兴趣的读者,请查看我们的专题:《PHP数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》、《php字符串(string)用法总结》、《php常用函数与技巧总结》、《PHP错误与异常处理方法总结》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《PHP数学运算技巧总结》和0755-79000。
希望这篇文章对大家的PHP编程有所帮助。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。