PHP 개발에서는 특히 특정 키워드가 포함 된 문자열 요소를 찾으려면 어레이에서 요소를 필터링해야합니다. 현재 stripos 와 array_filter 의 조합은 매우 실용적인 솔루션입니다.
이 기사에서는이 기능을 구현하기 위해 Array_Filter 와 함께 Stripos를 사용하는 방법을 이해하기 위해 단계별로 진행됩니다.
stripos () 는 PHP의 문자열 함수로, 다른 문자열에서 문자열이 먼저 나타나는 위치를 찾습니다 (Case Insensitive). 발견 된 경우 (0부터 시작) 위치를 반환하고 찾을 수없는 경우 False를 반환합니다.
구문은 다음과 같습니다.
stripos(string $haystack, string $needle): int|false
예를 들어:
stripos("Hello World", "world"); // 반품 6
Array_Filter () 는 콜백 함수에 의해 배열을 필터링하는 데 사용되는 PHP의 함수입니다. 배열의 각 요소를 반복하고 콜백 함수 의 리턴 값과 일치하지 않는 요소를 필터링합니다.
구문은 다음과 같습니다.
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
실질적인 예를 살펴 보겠습니다. 여러 URL이 포함 된 배열이 있으며 특정 키워드 (예 : "로그인"과 같은 모든 요소를 걸러 내려고합니다.
<?php
$urls = [
"https://m66.net/home",
"https://m66.net/user/login",
"https://m66.net/about",
"https://m66.net/admin/login",
"https://m66.net/contact"
];
$keyword = "login";
$filtered = array_filter($urls, function($url) use ($keyword) {
return stripos($url, $keyword) !== false;
});
print_r($filtered);
Array
(
[1] => https://m66.net/user/login
[3] => https://m66.net/admin/login
)
보시다시피, "로그인"이 포함 된 URL 만 보존됩니다.
여러 키워드를 지원하려면 콜백 기능을 약간 수정할 수 있습니다.
<?php
$keywords = ["login", "admin"];
$filtered = array_filter($urls, function($url) use ($keywords) {
foreach ($keywords as $word) {
if (stripos($url, $word) !== false) {
return true;
}
}
return false;
});
print_r($filtered);
이렇게하면 유연하고 강력한 키워드가 포함 된 URL을 반환합니다.
array_filter 와 함께 Stripos를 사용하는 것은 문자열 배열에서 키워드 일치하는 간단하고 효율적인 방법입니다. 간결한 코드와 명확한 논리가있을뿐만 아니라 로그 분석, URL 라우팅 매칭, 컨텐츠 필터링 등과 같은 다양한 실용적인 시나리오에도 적합합니다.
재사용 성과 유지 가능성을 향상시키기위한 요구에 따라이 논리를 기능으로 추가로 캡슐화 할 수 있습니다.
이러한 유형의 PHP 실용 기술에 관심이 있다면 더 많은 프로그래밍 팁을 따르십시오!