• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php 移除数组重复元素的一点说明_php技巧

php 搞代码 4年前 (2022-01-26) 25次浏览 已收录 0个评论

如:

$test_array=array(1,2,3,4,4,5,5,6); <BR>$test_array_unique=array_unique($test_array); <BR>print_r($test_array_unique); <BR>$test_array=array(1,2,3,4,4,5,5,6); <BR>$test_array_unique=array_unique($test_array); <BR>print_r($test_array_unique); <BR>

但是至此,不要粗心,事还没结束。细心的看你会发现经管重复的元素被移除了,但是剩下来这些元素的索引没有变化,这样的话如果用for循环调用这个数组元素的时候就会发生错误了,因为for循环的时候是按照数字递增,而且大多数人用的是count($test_array_unique)来获得数组的大小,这样就会造成一些元素被遗漏;

$test_array=array(1,2,3,4,4,5,5,6); <BR>$test_array_unique=array_unique($test_array); <BR>for($i=0;$i<count($test_array_unique);$i++) <BR>{ <BR>echo $test_array_unique[$i]; <BR>} <BR>$test_array=array(1,2,3,4,4,5,5,6); <BR>$test_array_unique=array_unique($test_array); <BR>for($i=0;$i<count($test_array_unique);$i++) <BR>{ <BR>echo $test_array_unique[$i]; <BR>} <BR>

这样你不会看到元素6被输出,因为6的索引是8,处理前的数组和处理后的数组索引没有任何改变;
解决办法:
当然,这里解决办法太多了,我介绍的只是一种我觉得比较简单的方法,那就是函数array_values,array_values是返回数组的值,跟索引没有关系,这样处理后会形成一个新的数组,严格按照数字递增的索引,这样再使用for循环输出边一切OK了!

$test_array=array(1,2,3,4,4,5,5,6); <BR>$test_array_unique=array_values(array_unique($test_array)); <BR>for($i=0;$i<coun<div>……本2文来源gaodai.ma#com搞##代!^码@网3</div><code>搞代gaodaima码</code>t($test_array_unique);$i++) <BR>{ <BR>echo $test_array_unique[$i]; <BR>} <BR>

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php 移除数组重复元素的一点说明_php技巧
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址