In PHP ist Array_filter () eine sehr praktische Funktion, die häufig zum Filtern von Daten aus einem Array anhand bestimmter Bedingungen verwendet wird. In diesem Artikel wird ein einfaches Beispiel verwendet, um zu demonstrieren, wie Sie Array_filter () verwenden, um eine grundlegende Such- und Filterfunktion zu implementieren.
Array_filter () ist eine integrierte Funktion zum Filtern von Elementen in einem Array. Seine Syntax ist wie folgt:
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
In:
$ Array : Das zu filterne Array;
$ Callback : Eine Rückruffunktion, mit der bestimmt wird, ob jedes Element beibehalten wird.
$ modus : Optionaler Parameter, um anzugeben, ob die Rückruffunktion einen Schlüsselwert, einen Schlüsselnamen oder beides empfängt.
Wenn die Rückruffunktion nicht übergeben wird, entzieht Array_filter () Elemente mit einem Wert von False (einschließlich Null , False , leerer Zeichenfolge, 0 usw.).
Angenommen, wir haben eine Produktliste. Jedes Produkt ist ein Array -Element mit Namen und Kategorie . Wir möchten nach Produkten mit dem Wort im Produktnamen basierend auf dem Schlüsselwort suchen.
$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'],
];
Benutzer übergeben in Suchschlüsseln über URL:
// Beispiel URL:https://m66.net/search.php?keyword=iphone
$keyword = isset($_GET['keyword']) ? strtolower(trim($_GET['keyword'])) : '';
Verwenden Sie als nächstes Array_Filter () , um zu suchen:
$filteredProducts = array_filter($products, function ($product) use ($keyword) {
return strpos(strtolower($product['name']), $keyword) !== false;
});
Schließlich können wir die filtrierte Produktliste ausgeben:
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>Suchergebnisse - m66.net</title>
</head>
<body>
<h1>Suchergebnisse</h1>
<?php if (empty($keyword)): ?>
<p>Bitte geben Sie Suchschlüsselwörter ein。</p>
<?php elseif (empty($filteredProducts)): ?>
<p>Nicht gefunden mit“<?php echo htmlspecialchars($keyword); ?>”Verwandte Produkte。</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 () ist eine sehr leistungsstarke Werkzeugfunktion in PHP, insbesondere für die Handhabung von Array -Suche und bedingte Filteraufgaben. Durch die Kombination von anonymen Funktionen und die Verwendung der Syntax können wir schnell flexible und prägnante Filterlogik erstellen. Das obige Suchbeispiel ist eine praktische kleine Funktion, die für ein einfaches Produkt- oder Artikel -Suchsystem geeignet ist.
Wenn Sie ein leichtes Suchmodul entwickeln, versuchen Sie es mit Array_Filter () besser als Sie denken!