2011-09-06 164 views
0

我有一个字段,存储标记逗号分离。我正在计算列出的项目数量。Count()返回1用逗号分隔的字符串与爆炸

比方说,我已经拉从数据库中的数据,和$标签变量具有以下信息:

$tags = "Videos,Magazines,Store"; 

// First separate tags by commas, put into into array 
$tagArray = explode(",",$tags); 

// Count how many items are in the array 
$arrayCount = count($tagArray); 

,它总是返回“1”,而不管是否有数组中的一个项目或不。 $ tags变量可以包含任意数量的项目 - 从空白到单个项目(如“视频”)到多个项目“视频,游戏,商店”等。

有人可以帮我解决我在做什么错?

+6

返回'3' [我] (http://codepad.org/jHkGFYYW)。你是否[意外调用](http://codepad.org/GQnFA0NX)原始字符串上的'count()'? – alex

+1

不可复制。请发布您的实际代码。 (也许避免混合使用变量名称。) – mario

+1

编码问题?你的逗号不是逗号吗? – deceze

回答

2

从PHP手册:

如果delimiter包含未包含在字符串和一个负极限使用值,则空数组将被返回,否则包含字符串的数组将被返回。

所以,简单地说 - 如果在字符串中没有找到分隔符,那么explode什么也不做。如果您的变量包含空字符串,计数()将返回1 你需要NULL值计数()返回0。

试试这个:

$tags = "Videos,Magazines,Store"; 

// First separate tags by commas, put into into array<br> 
$tagArray = <b>($tags != '')?</b>explode(",",$tags)<b>:NULL</b>; 

// Count how many items are in the array<br> 
$arrayCount = count($tagArray);