>  기사  >  백엔드 개발  >  PHP 배열에서 SQL LIKE \'%search%\' 기능을 달성하는 방법은 무엇입니까?

PHP 배열에서 SQL LIKE \'%search%\' 기능을 달성하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-04 11:02:02504검색

How to Achieve SQL LIKE '%search%' Functionality in PHP Arrays?

PHP의 유사한 SQL 필터링: 부분 텍스트로 일치 항목 반환

SQL과 유사한 부분 텍스트 검색을 기반으로 배열에서 값 필터링 LIKE '%search%' 쿼리는 많은 프로그래밍 시나리오에서 필수적인 작업이 될 수 있습니다. PHP에서 배열을 사용하여 이를 달성하려면 전문적인 기술이 필요합니다.

제공된 예제를 살펴보겠습니다. 색상 이름이 포함된 배열이 주어지면 목표는 사용자의 입력 텍스트와 부분적으로 일치하는 색상만 반환하는 것입니다. 예를 들어, 입력이 "bl"인 경우 예상되는 출력은 입력 배열 ["orange", "blue", "green", "red", "pink", "blue", "black"]입니다. "brown", "black"].

preg_grep에 정규식 사용

array_filter를 사용하는 대신 사용자 정의 람다 함수를 사용하는 경우 더 간단하고 효율적인 접근 방식은 preg_grep 함수를 사용하는 것입니다. 정규식의 강력한 기능과 배열 필터링을 결합합니다.

<code class="php">$input = preg_quote('bl', '~'); // Quote the input string for use in regex
$data = array('orange', 'blue', 'green', 'red', 'pink', 'brown', 'black');

$result = preg_grep('~' . $input . '~', $data);</code>

이 코드에서:

  • preg_quote는 ., ? 및 *와 같은 특수 문자를 이스케이프 처리하여 입력 문자열을 보호합니다.
  • preg_grep은 정규 표현식에 PHP ~ 구분 기호와 ~' 패턴을 사용합니다. $ 입력 . '~는 입력 하위 문자열 bl을 포함하는 모든 문자열과 일치합니다.
  • 결과 $result 배열에는 입력과 부분적으로 일치하는 요소(예: 파란색 및 검정색)만 포함됩니다.

위 내용은 PHP 배열에서 SQL LIKE \'%search%\' 기능을 달성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.