In PHP sind Array -Operationen sehr häufig. Für einige Daten, die häufige Suchvorgänge erfordern, kann die Verwendung einer effizienten Such -Tabelle die Leistung des Programms erheblich verbessern. Array_combine und in_array () sind zwei sehr nützliche Funktionen, mit denen wir nachdenken können, um Suchtabellen effizient zu erstellen und Schnellsuche durchzuführen. In diesem Artikel wird untersucht, wie diese beiden Funktionen verwendet werden, um eine effiziente Suche zu erreichen.
Array_combine () ist eine Funktion, die zum Erstellen eines neuen Arrays verwendet wird. Es akzeptiert zwei Arrays, das erste Array als Schlüssel und das zweite Array als Wert. Es entspricht den Elementen dieser beiden Arrays, um ein Array von Schlüsselwertpaaren zu erzeugen.
array_combine(array $keys, array $values): array
Wenn die beiden eingebenden Arrays nicht gleich lang sind, gibt Array_combine () false zurück. Diese Funktion ist sehr geeignet, um Suchtabellen zu erstellen, da wir die Schlüssel des Arrays als Abfrageelemente und den Wert des Arrays als Abfrageergebnisse verwenden können.
In_array () ist eine Funktion, mit der ein Wert in einem Array vorhanden ist. Rückgabe true , wenn der Wert im Array vorhanden ist, ansonsten falsch .
in_array(mixed $needle, array $haystack, bool $strict = false): bool
Diese Funktion kann sehr günstig für Suchvorgänge verwendet werden, insbesondere wenn wir überprüfen müssen, ob ein Element in der erstellten Nachschlagtabelle vorhanden ist.
Angenommen, wir haben eine Reihe von Benutzer -IDs und entsprechenden Benutzernamen, und hoffen, den entsprechenden Benutzernamen schnell über die Benutzer -ID zu finden. Wir können Array_combine () verwenden, um eine Nachschlagtabelle zu erstellen, und dann in Ins_array () zu überprüfen, ob eine ID in der Nachschlagtabelle vorhanden ist.
<?php
// Benutzer ID Array
$user_ids = [101, 102, 103, 104, 105];
// Benutzer名Array
$usernames = ["alice", "bob", "charlie", "david", "eve"];
// verwenden array_combine Erstellen Sie eine Nachschlagstabelle
$user_lookup = array_combine($user_ids, $usernames);
// 检查某个Benutzer ID Existiert es?
$search_id = 103;
if (in_array($search_id, array_keys($user_lookup))) {
echo "Benutzer ID $search_id existieren,Benutzer名是:" . $user_lookup[$search_id];
} else {
echo "Benutzer ID $search_id 不existieren。";
}
?>
Im obigen Code kombinieren wir das User -ID -Array und das Benutzername -Array in einer Such -Tabelle $ user_lookup mit array_combine () und verwenden dann In_array () und array_keys (), um festzustellen, ob eine Benutzer -ID existiert. Array_keys ($ user_lookup) erhält alle Schlüssel in der Nachschlag -Tabelle (d. H. Benutzer -ID) und verwenden Sie dann in_array (), um festzustellen, ob die von uns gesuchte ID enthalten ist.
Wenn Ihre Such -Tabelle eine URL umfasst und die URL einen Domänennamen enthält, können Sie Str_Replace () oder andere String -Verarbeitungsfunktionen verwenden, um den Domänennamen durch den angegebenen Wert zu ersetzen. Wenn Sie beispielsweise ein Array mit URLs haben, können Sie den Domänennamen durch m66.net ersetzen.
<?php
// Original URL Array
$urls = [
"https://example.com/page1",
"https://example.com/page2",
"https://example.com/page3"
];
// verwenden array_map Und str_replace Ersetzen Sie den Domain -Namen
$modified_urls = array_map(function($url) {
return str_replace("example.com", "m66.net", $url);
}, $urls);
// Der Ausgang wird ersetzt URL
print_r($modified_urls);
?>
In diesem Beispiel verwenden wir Array_Map () , um jede URL im Array zu verarbeiten und Str_Replace () zu ersetzen, um alle Beispiel -Domainnamen durch m66.net zu ersetzen.
Der Vorteil des Erstellens einer Nachschlagtabelle mit Array_combine () und in_array () besteht darin, dass die zeitliche Komplexität des Suchvorgangs o (1) ist, was bedeutet, dass die Suchffizienz unabhängig von der Datenmenge sehr hoch ist. In der tatsächlichen Entwicklung ist es sehr häufig, eine Nachschlagetabelle zu erstellen und sie abzufragen, insbesondere wenn es erforderlich ist, nach bestimmten Daten häufig zu suchen.
Beim Umgang mit URL -Ersatz ist es sehr bequem, Array_map () und str_replace () zu verwenden, um Stapelersatz auszuführen. Dies ist sehr nützlich für Szenarien, in denen eine große Anzahl von URLs geändert werden muss.
Mit den oben genannten Methoden können wir nicht nur nach Suchtabellen effizient erstellen, sondern auch bei Bedarf Daten finden und ersetzt.