2011-08-12 2 views
0

이 코드는 나에게 매우 쉽고 논리적 인 것, 나는 .. 피곤해야합니다 아주 명확하게 (20)가 비록 "이하 5"에도 여전히 인쇄되는 이유는preg_match_all 내가 기대하고있는 것을하지 않습니까? 내가 그것에을 기대하고 있지 있기 때문에

//look for any letter, number or underscore  
$regexTags = "/[a-z0-9_]/i"; 

//needlessly large string.. 
$string = "111 222 333 444 555 666 777"; 
preg_match_all($regexTags, $string, $regexMatches); 
print_r($regexMatches); 

//$regexMatches spits out [0] => Array ([0] => 1 [1] => 1 [2] => 1 [3] => 2 [4] => 2 [5] => 2 [6] => 3 [7] => 3 [8] => 3 [9] => 4 [10] => 4 [11] => 4 [12] => 5 [13] => 5 [14] => 5 [15] => 6 [16] => 6 [17] => 6 [18] => 7 [19] => 7 [20] => 7)) 
//as expected. 

//Count how many variables are in the array 
$matchCount = count($regexMatches); 

if ($matchCount < 5){ 
    echo "less than 5"; 
} 

$ regexMatches 배열의 값? 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

4

시도 count($regexMatches[0]).

:

+1

GAUGHHHGHGHGHGHGHHGHGHGHGHGHGHGHGH을! * 머리카락이 빠져 나간다. * 나는 좋은 시간 동안 스택 오버 플로우의 좋은 사람들을 괴롭히지 않고 그걸 알아 내려고 노력하면서 좋은 두 시간을 보냈다. 고맙습니다, 그 대답이었습니다. – Partack

+1

ㅎ, 도와 줘서 기쁩니다. 나는 우리 모두가 이런 일을 겪었다는 것을 알고있다 : p – Kokos

3

은 왜 그냥으로, preg_match_all 반환 값을 사용하지 못할 :

$matchCount = preg_match_all($regexTags, $string, $regexMatches); 
echo $matchCount; 
+0

아, 이것은 가장 간단한 형태로 내 문제를 설명하기위한 예일 뿐이다. =) 나의 프로젝트 코드는 이것과 다르게 보인다 =) 당신의 제안에 감사드립니다 ^^ – Partack

+0

아, 두 번째 생각, 나는이 중 하나를 시도하지 않았고 멋지게 내 코드를 정돈. 건배. =) – Partack

+1

성능에 대한 추가 계산이 필요하지 않은 경우에도 유용합니다. D – Vytautas

관련 문제