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 중국어 웹사이트의 기타 관련 기사를 참조하세요!