count用法

本文探讨了在PHP中使用array_unique函数去除数组重复元素后,如何通过循环正确输出每个非空元素,以及理解count函数在处理去重数组时的行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

浏览次数:658次 悬赏分:100 | 解决时间:2010-8-10 16:25 | 提问者:Mr_janco

我用一个循环把若干元素逐个放到数组$tag[]里,

数组里面有重复的元素,所以我用$tag2 = array_unique($tag)把里面的重复元素删除,

之后再用一个上限足够大的for循环将这个$tag2数组中每个元素逐一输出,当然有许多元素因为被删除了是空的,所以循环里面也进行了判断strlen($tag2[$i]) > 0才输出,输出了n个元素。

 

1、但我用count($tag2)算出的的数组元素个数却比n少很多,按理说不是应该有n个吗?

2、为什么会出现这种情况?

3、PHP没有初始化元素个数的,因为经过删除重复元素的函数处理后,数组中原本的很多重复元素被删除,中间多了很多空的元素,大概50多个,count()的原理是计算到什么程度才停止的?

最佳答案

$tag2 = array_unique($tag)中$tag2,不包含空元素(你print_r($tag2)就知道),只是索引号不是连续的而已,count()本来就没算上那些空元素,如果想让索引变成连续的就用$tag2=array_values($tag2)就好了,不会改变顺序,如果只想遍历无所谓索引就这样试试

foreach($tag2 as $t)

{

  echo $t;

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值