현재 위치: > 최신 기사 목록> Array_Filter ()를 사용하여 간단한 검색 필터링을 구현하는 방법

Array_Filter ()를 사용하여 간단한 검색 필터링을 구현하는 방법

M66 2025-06-03

PHP에서 Array_Filter ()는 특정 조건에 따라 배열에서 데이터를 필터링하는 데 종종 사용되는 매우 실용적인 기능입니다. 이 기사는 간단한 예제를 사용하여 Array_Filter ()를 사용하여 기본 검색 및 필터링 기능을 구현하는 방법을 보여줍니다.

Array_Filter () 란 무엇입니까?

Array_Filter () 는 배열에서 요소를 필터링하기위한 내장 기능입니다. 구문은 다음과 같습니다.

 array_filter(array $array, ?callable $callback = null, int $mode = 0): array

안에:

  • $ 배열 : 필터링 할 배열;

  • $ 콜백 : 각 요소가 유지되는지 여부를 결정하는 데 사용되는 콜백 기능;

  • $ 모드 : 콜백 함수가 키 값, 키 이름 또는 둘 다를 수신하는지 여부를 지정하는 선택적 매개 변수.

콜백 함수가 전달되지 않으면 Array_Filter ()는 False 값 ( NULL , FALSE , 빈 문자열, 0 등 포함)의 요소를 제거합니다.

샘플 시나리오 : 검색 제품 목록

제품 목록이 있다고 가정하고 각 제품은 이름카테고리가 포함 된 배열 항목입니다. 키워드를 기반으로 제품 이름에 단어가있는 제품을 검색하고자합니다.

 $products = [
    ['name' => 'iPhone 15', 'category' => 'electronics'],
    ['name' => 'MacBook Pro', 'category' => 'electronics'],
    ['name' => 'Espresso Machine', 'category' => 'home appliances'],
    ['name' => 'Running Shoes', 'category' => 'fashion'],
    ['name' => 'iPhone Case', 'category' => 'accessories'],
];

사용자는 URL을 통해 검색 키워드를 전달합니다.

 // 예 URL:https://m66.net/search.php?keyword=iphone
$keyword = isset($_GET['keyword']) ? strtolower(trim($_GET['keyword'])) : '';

다음으로 array_filter ()를 사용하여 검색하십시오.

 $filteredProducts = array_filter($products, function ($product) use ($keyword) {
    return strpos(strtolower($product['name']), $keyword) !== false;
});

마지막으로 필터링 된 제품 목록을 출력 할 수 있습니다.

 foreach ($filteredProducts as $product) {
    echo "<p>" . htmlspecialchars($product['name']) . " - " . htmlspecialchars($product['category']) . "</p>";
}

완전한 샘플 코드

 <?php
// products.php
$products = [
    ['name' => 'iPhone 15', 'category' => 'electronics'],
    ['name' => 'MacBook Pro', 'category' => 'electronics'],
    ['name' => 'Espresso Machine', 'category' => 'home appliances'],
    ['name' => 'Running Shoes', 'category' => 'fashion'],
    ['name' => 'iPhone Case', 'category' => 'accessories'],
];

$keyword = isset($_GET['keyword']) ? strtolower(trim($_GET['keyword'])) : '';

$filteredProducts = array_filter($products, function ($product) use ($keyword) {
    return strpos(strtolower($product['name']), $keyword) !== false;
});
?>
<!DOCTYPE html>
<html>
<head>
    <title>검색 결과 - m66.net</title>
</head>
<body>
    <h1>검색 결과</h1>
    <?php if (empty($keyword)): ?>
        <p>검색 키워드를 입력하십시오。</p>
    <?php elseif (empty($filteredProducts)): ?>
        <p>찾을 수 없습니다“<?php echo htmlspecialchars($keyword); ?>”관련 제품。</p>
    <?php else: ?>
        <?php foreach ($filteredProducts as $product): ?>
            <p><?php echo htmlspecialchars($product['name']); ?> - <?php echo htmlspecialchars($product['category']); ?></p>
        <?php endforeach; ?>
    <?php endif; ?>
</body>
</html>

요약

Array_Filter () 는 PHP에서 매우 강력한 도구 기능이며 특히 배열 검색 및 조건부 필터링 작업을 처리하는 데 적합합니다. 익명 함수를 결합하고 구문을 사용하여 유연하고 간결한 필터링 로직을 빠르게 구축 할 수 있습니다. 위의 검색 예제는 간단한 제품 또는 기사 검색 시스템에 적합한 실용적인 작은 기능입니다.

경량 검색 모듈을 개발하는 경우 Array_Filter ()를 사용해보십시오. 생각보다 나을 수 있습니다!