Die Blacklist -Filterung ist während der Entwicklung eine häufige Voraussetzung. Angenommen, wir haben eine Benutzerzugriffsdaten, wir möchten einige Benutzer auf die schwarze Liste ausschließen oder unangemessenen Zugriff auf der Grundlage bestimmter Bedingungen herausfiltern. Zu diesem Zeitpunkt kann die Funktion array_diff_ukey () nützlich sein. Es kann basierend auf den Schlüsselnamen des Arrays verglichen werden, wodurch uns der Blacklist -Filtermechanismus implementiert wird.
Die Funktion array_diff_ukey () ist eine integrierte Funktion in PHP, die zwei Arrays basierend auf dem Schlüsselnamen vergleicht und verschiedene Teile der beiden Arrays zurückgibt. Die grundlegende Syntax ist wie folgt:
array_diff_ukey(array $array1, array $array2, callable $key_compare_func): array
$ Array1 : Das erste Array.
$ array2 : Das zweite Array.
$ key_compare_func : Eine Rückruffunktion, die die Schlüsselnamen von zwei Arrays vergleicht und einen booleschen Wert zurückgibt, der angibt, ob die beiden Schlüsselnamen gleich sind.
In der tatsächlichen Blacklist -Filteranwendungen können wir diese Funktion verwenden, um Benutzer auf der Blacklist herauszufiltern. Als nächstes werden wir ein Beispiel verwenden, um ausführlich zu zeigen, wie Sie Array_Diff_Ukey () verwenden, um den Blacklist -Filtermechanismus zu implementieren.
Angenommen, wir haben zwei Arrays, einer ist das Array "Benutzerzugriffsaufzeichnungen", das andere ist das Blacklist -Array, und wir möchten die Benutzer auf der Blacklist herausfiltern.
<?php
// Benutzerzugriffsaufzeichnungsarray,Schlüssel für den BenutzerID,Der Wert ist der Zugriffsdatensatz des Benutzers
$accessLogs = [
1 => "Zugangsgeschichte1",
2 => "Zugangsgeschichte2",
3 => "Zugangsgeschichte3",
4 => "Zugangsgeschichte4",
5 => "Zugangsgeschichte5"
];
// Blacklist Array,Der Schlüssel ist der auf die schwarzen Liste stehende BenutzerID
$blacklist = [
2 => "Benutzer auf schwarze Liste",
4 => "Benutzer auf schwarze Liste"
];
// Benutzerdefinierte Schlüsselvergleichsfunktion,Stellen Sie fest, ob die beiden Schlüsselnamen gleich sind
function compare_keys($key1, $key2) {
return $key1 - $key2;
}
// verwenden array_diff_ukey Funktionen filtern Benutzer auf der Blacklist heraus
$filteredLogs = array_diff_ukey($accessLogs, $blacklist, 'compare_keys');
// 输出过滤后的Zugangsgeschichte
print_r($filteredLogs);
?>
Wir definieren zunächst zwei Arrays, $ AccessLogs ist ein Array mit Benutzerzugriffsdatensätzen, und $ BlackList ist ein Array der Blacklist. Die Schlüssel beider Arrays sind Benutzer -IDs.
Als nächstes definieren wir eine Funktion namens compare_keys , um zu vergleichen, ob die beiden Schlüsselnamen gleich sind. Diese Funktion wird für den Rückrufparameter der Funktion array_diff_ukey () verwendet und gibt einen booleschen Wert zurück, um festzustellen, ob die beiden Schlüssel gleich sind.
Verwenden Sie dann die Funktion array_diff_ukey () , um Benutzer im Blacklist -Array herauszufiltern und ein neues gefiltertes Array $ filteredlogs zurückzugeben, das Benutzer nicht in der Blacklist enthält.
Schließlich wird das gefilterte Ergebnis über print_r () ausgegeben.
Array
(
[1] => Zugangsgeschichte1
[3] => Zugangsgeschichte3
[5] => Zugangsgeschichte5
)
Wie oben gezeigt, wurden Benutzer in der Blacklist (IDS 2 und 4) erfolgreich herausgefiltert, und die verbleibenden Zugriffsdatensätze enthalten nur Nicht-Blacklist-Benutzer.
Diese Methode kann in mehreren Szenarien verwendet werden, wie z. B.:
Website -Benutzerzugriffsprotokollfilterung, um Zugriff durch Benutzer auf schwarze Liste zu vermeiden.
Filtern Sie bestimmte nicht autorisierte IP -Adressen, um sicherzustellen, dass das System nur legitime Anfragen erhält.
Im Benutzerverwaltungssystem werden einige deaktivierte Benutzer aus der Liste der verfügbaren Benutzer entfernt.
Durch die Funktion array_diff_ukey () in PHP können wir den Blacklist -Filtermechanismus effizient implementieren. In Kombination mit der benutzerdefinierten Schlüsselvergleichsfunktion können Sie die Schlüsselnamen des Arrays flexibel vergleichen, um eine genaue Filterung von Benutzern oder Daten zu erreichen. Wenn in der tatsächlichen Entwicklung ähnliche Operationen erforderlich sind, ist die Funktion array_diff_ukey () zweifellos ein sehr praktisches Instrument.