2014-06-20 2 views
0

검색 알고 난 $ arr2 에코 경우배열 검색 그나마 내가이 배열이

include("config.php"); 
$start = "2014-06-20 08:00:00"; 
$data = mysql_query ("select * from evenement WHERE start = '$start'"); 
$zaznam = mysql_fetch_array ($data); 
while($zaznam = mysql_fetch_array ($data)) 
{ 
$arr2[] = $zaznam["resourceId"]; //store query values in second array 

} 

내가 얻을를이 :

Array ([0] => STK1) 

지금 내가 array_search에 대한 조건을

:

if (array_search('STK1', $arr2)) { 
    echo "Arr2 contains STK1 <br>"; 
} 
else { 
    echo "Arr2 not contains STK1 <br>"; 
} 

하지만 나는 이것을 얻는다 Arr2는 STK1을 포함하지 않는다 어떻게 가능합니까? 뭐가 잘못 됐니?

+0

실제로 당신의 질문에 대한 대답 답변이있을 경우 이봐, 당신이 선택해야 하나 그것을 받아들이는. 이것은 당신과 당신을 도우려고 노력하는 사람들에게 평판 포인트를 줄 것입니다 ... :) – clami219

답변

2

PHP에서는 완전히 올바르게 작동합니다.

반환 값에 대한 documention는 말한다 : 또한 경우에 false로 평가 0을 받고 귀하의 경우에는

Returns the key for needle if it is found in the array, FALSE otherwise.

합니다.

!== 연산자를 사용하여 값이 false가 아닌지 확인해야합니다. array_search documentation 가입일

if (array_search('STK1', $arr2) !== false) { 
    echo "Arr2 contains STK1 <br>"; 
} 
else { 
    echo "Arr2 not contains STK1 <br>"; 
} 
+0

예, 대답하기 전에 알아 냈습니다. 그러나 내 마음을 확인해 주셔서 감사합니다! – user3759862

1

:

이 함수는 논리 FALSE를 반환하지만 논리 FALSE 값을 반환 할 수있다. 자세한 내용은 부울에 대한 절을 읽으십시오. 이 함수의 반환 값을 테스트하려면 === 연산자를 사용하십시오.

array_search은 배열의 인덱스 0에서 일치하는 항목을 찾았 기 때문에 0을 반환합니다. 이것은 거짓으로 평가됩니다.

대신 시도 :

if (array_search('STK1', $arr2) !== false) { 
    echo "Arr2 contains STK1 <br>"; 
} 
else { 
    echo "Arr2 not contains STK1 <br>"; 
}