本文实例报告了PHP数组去重的更快完成体式格局。分享给人人供人人参考,细致以下:
引荐教程:PHP视频教程
运用PHP的array_unique()
函数许可你通报一个数组,然后移除反复的值,返回一个具有唯一值的数组。这个函数大多数情况下都能事情得很好。然则,假如你尝试在一个大的数组里运用array_unique()
函数,它会运转地慢一些。
有一个比较好而且更快的函数array_flip()
来替换运用array_unique()
函数来建立唯一的数组。这个魔法般的函数会交流数组内里每个元素的键和值,由于键值必需唯一,因而,你会获得跟array_unique()
函数一样的效果。
/* 建立一个包括反复值的,一共四个元素的数组 */ $array = array('green','blue','orange','blue'); /* 翻转数组,你将会获得唯一键值的数组 array('green'=>0,'blue'=>1,'orange'=>2); */ $array = array_flip($array); /* 然后再翻转一次,将键和值从新安排,然后获得数组:array(0=>'green',1=>'blue',2=>'orange'); */ $array = array_flip($array); print_r($array)
运转效果:
Array ( [0] => green [3] => blue [2] => orange )
由于我们已移除了一些元素,因而数组看起来不是一般的序列。比方我们可能会获得:array(0=>'A',2=>'B',5=>'C');。在某些情况下,这不是一个题目,然则假如你须要数组的键值坚持数字的序列,你能够运用一到两种要领处理键值乱序的题目。
运用array_merge修复数组的keys
增加array_flip以后的函数,将会对数组的键值排序而且让它们恢复到一般的序列,如:0,1,2,3…
$array = array('green','blue','orange','blue'); $array = array_flip($array); $array = array_flip($array); /* 运用array_merge()函数修复键值*/ $array = array_merge($array); print_r($array)
运转效果同上
第二种体式格局,运用array_keys
注重,这类修复数组键值的要领比运用array_merge()函数轻微快了一点。你也能够在末了一步连系运用array_keys()函数(此函数返回翻转后的值)。然后当你翻转数组的值,键值就会依据递次建立。
$array = array('green','blue','orange','blue'); $array = array_flip($array); /* 跟第一个例子一样,然则如今我们先提取数组的键值 */ $array = array_keys($array); print_r($array)
运转效果同上
结论
异常简朴,比起在大数组运用array_unique函数,有了一个有用的机能提拔。
以上就是php数组去重的要领的细致内容,更多请关注ki4网别的相干文章!