내가 PHP의 array_search 기능에 대한 뭔가 흥미로운 것을 발견하고 누군가가이 문제를 해결하는 방법을 말해 줄 수 있는지 궁금 해서요 :PHP array_search : 키 == 0을 false와 어떻게 구별합니까?
그것은 기능 키를 반환하는 값이 배열에 발견되었을 때 그 docs 말한다, 그렇지 않으면 false입니다.
$arr = array(0 => "red", 1 => "blue", ...);
및 array_search 사용하여 빨간색 값을 찾아 다음 키 0이 반환됩니다
문제는 당신과 같은 배열이있는 경우이다.
그러나 문제는 배열의 일부 요소가 있는지 여부를 찾기 위해 함수의 결과를 사용하는 경우 값이 0 (키 0이 실제로 발견 된 요소이므로 키 0)을 반환하면, 함수가 false를 반환 할 때와 마찬가지로 PHP에서도 동일하게 취급됩니다. 환언 :
if (array_search("red", $arr) == false)
경우와 동일 :
if (array_search("red", $arr) == 0)
한 경우, 소자가 발견 될 수없고 두 번째 경우에서, 엘리먼트가 아마이었던 키 더니 제외 0.
제 질문은이 문제의 해결책입니다. PHP manual에서
신원 비교를 사용하십시오 :'==='. – lafor
좋아요! 고마워. 이 질문을 답으로 게시하시는 것이 좋습니다. – user18490
공유 한 링크에 경고 상자가 있습니다. 읽어. – HamZa