2014-06-08 2 views
-1

왜 작동하지 않습니까?PHP foreach 및 strpos 초보자

$statement = array(
    images_name[0] => 'small_01.jpg', 
    images_name[1] => 'large_01.jpg', 
); 

foreach ($statement->images as $image): 
if (strpos($image->name, 'small')) { 
    echo ('yes'); 
} 
endforeach 

아무런 문제없이 이미지 이름을 인쇄 할 수 있지만 strpos은 작동하지 않습니다.

+0

스택 오버 플로우에 오신 것을 환영합니다! "일하지 않는다"는 의미를 설명하십시오. ** full ** traceback (있는 경우) 및 예상 결과를 포함하십시오. – Veedrac

답변

0

당신은 사용해야합니다

foreach ($statement->images as $image) 
    if (strpos($image->name, 'small') !== false) { 
    echo ('yes'); 
    } 

는 여기에 설명 : http://us3.php.net//manual/en/function.strpos.php

또한, 당신은 "==="이 글을 읽을 당신이 "==!"또는 사용이 필요한 이유를 알고 싶다면 : How do the PHP equality (== double equals) and identity (=== triple equals) comparison operators differ?

+0

감사합니다. 그것을 읽을 것입니다. – user3720483

0

strpos 작품이지만, 파일 이름에 단어의 위치는 0입니다.
더 나은 솔루션 :

strstr($image->name, 'small') !== false 

Strstr 기능을 발견했을 때 문자열을 찾을 수 또는 위치하지 않을 경우 false를 반환합니다.

+0

감사합니다. – user3720483

+0

도움을 주시면이 답장을 "우수 답변"으로 표시해주십시오. 평판 (+2)을 받게됩니다. – aso