PHP에서 배열을 사용할 때 배열에 요소가 존재하는지 확인하는 것은 일반적인 요구 사항입니다. 배열의 요소가 정수 또는 부동 소수점 숫자인 경우 in_array() 함수를 사용하여 해당 요소가 배열에 포함되어 있는지 확인할 수 있습니다. 그런데 배열에 문자열이 포함되어 있는지 확인할 때 함수가 제대로 작동하지 않습니다.
그렇다면 PHP 배열에 문자열이 포함되어 있는지 어떻게 확인해야 할까요?
방법 1: in_array() 함수를 사용하여
$fruits = array("apple", "banana", "orange"); if (in_array("apple", $fruits)) { echo "苹果在数组中"; } else { echo "苹果不在数组中"; }
를 결정합니다. 위 코드에서 in_array() 함수의 첫 번째 매개 변수는 찾을 요소이고 두 번째 매개 변수는 검색할 배열입니다. 이 함수는 발견된 요소가 배열에 있으면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
그러나 찾고 있는 것이 문자열인 경우 in_array() 함수는 문자열의 특정 부분을 비교하는 것이 아니라 전체 요소로 문자열을 비교합니다. 이는 배열에 찾고 있는 문자열의 일부인 요소가 포함되어 있으면 in_array() 함수가 여전히 false를 반환한다는 것을 의미합니다. 따라서 in_array() 함수는 PHP 배열에 문자열이 포함되어 있는지 여부를 정확하게 확인할 수 없습니다.
방법 2: array_search() 함수를 사용하여
$fruits = array("apple", "banana", "orange"); $key = array_search("apple", $fruits); if ($key !== false) { echo "苹果在数组中,键名为:" . $key; } else { echo "苹果不在数组中"; }
array_search() 함수가 in_array() 함수와 유사하고 배열에서 지정된 값을 찾는 데 사용되는지 확인합니다. 차이점은 array_search() 함수가 true/false 대신 배열에 있는 요소의 키 이름을 반환한다는 것입니다. 찾은 요소가 배열에 없으면 false를 반환합니다.
array_search() 함수를 사용할 때 이 함수는 엄격하고 대소문자를 구분한다는 점에 유의하세요. 즉, 문자열이 모두 대문자인 배열에서 소문자 문자열을 검색하면 array_search() 함수는 동일하더라도 false를 반환합니다.
방법 3: in_array() 및 array_map() 함수를 함께 사용하여
function array_value_exists($needle, $haystack) { return in_array($needle, array_map('strtolower', $haystack)); }를 결정합니다.
이 방법은 in_array() 및 array_map() 함수를 함께 사용하여 배열의 모든 문자열을 소문자로 변환하고 변환 후 검색합니다. 배열에 지정된 문자열입니다. 따라서 문자열이 대문자이든 소문자이든 배열에서 찾을 수 있습니다.
결론
PHP에서는 배열을 사용할 때 실제 상황에 따라 배열에 문자열이 포함되어 있는지 확인하는 방법을 다르게 선택해야 합니다. 일치해야 하는 문자열을 사용자가 입력한 경우 대문자 사용으로 인한 문제를 피하기 위해 세 번째 방법을 사용해야 하는지 고려해야 합니다.
위 내용은 PHP의 배열에 문자열이 있는지 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!