>백엔드 개발 >PHP 튜토리얼 >SQL의 `LIKE \'%search%\'`처럼 PHP에서 배열을 필터링하는 방법은 무엇입니까?

SQL의 `LIKE \'%search%\'`처럼 PHP에서 배열을 필터링하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-04 03:19:31762검색

How to Filter an Array in PHP Like SQL's `LIKE '%search%'`?

SQL LIKE '%search%'와 유사한 배열에서 값 필터링

JQueryUI를 사용하여 자동 완성 필드를 고안하면 문제가 발생합니다. 사용자 입력을 기반으로 배열의 값을 필터링합니다. ['주황색', '파란색', '녹색', '빨간색', '분홍색', '갈색', '검은색'] 색상을 포함하는 배열을 생각해 보세요. 사용자가 'bl'을 입력하는 경우 원하는 출력은 ['blue', 'black']입니다.

이를 달성하려면 array_diff() 사용을 고려할 수 있지만 더 적합한 접근 방식인 preg_grep이 있습니다. 이 함수는 정규 표현식과 필터링을 결합하여 당면한 작업에 이상적입니다.

preg_grep을 사용한 구현:

<code class="php">$input = preg_quote('bl', '~'); // Don't forget to quote the input string
$data = array('orange', 'blue', 'green', 'red', 'pink', 'brown', 'black');

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

이 코드에서 preg_quote는 다음 용도로 사용됩니다. 입력 문자열에서 특수 문자를 이스케이프합니다. 정규식 '~w ~'는 입력된 문자열을 포함하는 모든 단어(1개 이상의 문자)와 일치합니다. 그런 다음 preg_grep은 이 필터를 데이터 배열에 적용하여 원하는 일치 결과를 얻습니다.

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

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