2011-09-06 7 views
0

쉼표로 구분 된 태그를 저장하는 필드가 있습니다. 목록에있는 항목 수를 세지려고합니다.Count()는 쉼표로 구분 된 문자열과 함께 1을 반환합니다.

의 내가 이미 DB에서 데이터를 뽑아 한 가정 해 봅시다, 그리고 $ 태그 변수는 다음과 같은 정보를 가지고 항상 반환

$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 변수는 비어있는 항목에서부터 "동영상"과 같은 단일 항목, "동영상, 게임, 상점"등 여러 항목으로 이동할 수 있습니다.

내가 잘못하고있는 것에 대해 누군가 도와 줄 수 있습니까? ? PHP 설명서에서

+6

반환'3' (http://codepad.org/jHkGFYYW). 원래의 문자열에 [실수로] (http://codepad.org/GQnFA0NX)'count()를 부릅니까? – alex

+1

재생할 수 없습니다. 실제 코드를 게시하십시오. (대소 문자가 혼합 된 변수 이름은 피할 수 있습니다.) – mario

+1

인코딩 문제? 쉼표는 쉼표가 아니십니까? – deceze

답변

2

:

구분하지 문자열에 포함되어 음의 제한이 사용되는 값이 포함 된 경우

는, 하늘의 배열이 반환됩니다 그렇지 않으면 문자열을 포함하는 배열이 반환됩니다.

그래서 간단하게 - 구분 기호가 문자열에서 발견되지 않으면, explode는 아무 것도하지 않습니다. 귀하의 변수가 빈 문자열이 포함 된 경우은, 당신이 시도 0

를 반환 할 수()에 대한 NULL 값을 필요 1. 를 반환합니다) (수 : [나에게]

$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); 
관련 문제