Wie verwende ich Array_flip () und Array_Search (), um eine schnelle Positionierung von Wert zum Schlüssel zu erreichen?
In PHP müssen wir oft schnelle Suchanfragen in Arrays durchführen. Manchmal müssen wir den entsprechenden Schlüssel über den Wert finden oder den Schlüssel umgekehrt von einem Wert nachschlagen. PHP bietet zwei sehr nützliche Funktionen: array_flip () und array_search () , die uns helfen können, eine schnelle Positionierung von Werten zu Schlüssel zu erreichen. In diesem Artikel wird vorgestellt, wie diese beiden Funktionen verwendet werden, um diese Aufgabe zu erfüllen.
Die Funktion array_flip () tauschte Schlüssel und Werte im Array aus, wodurch der ursprüngliche Wert zur Schlüssel des Arrays wird und der ursprüngliche Schlüssel zum Wert wird. Angenommen, Sie haben ein assoziatives Array, das Sie über Array_flip () umkehren können, damit der Wert als neuer Schlüssel gefunden werden kann.
<?php
$array = [
'apple' => 1,
'banana' => 2,
'orange' => 3
];
$flipped = array_flip($array);
print_r($flipped);
?>
Ausgangsergebnis:
Array
(
[1] => apple
[2] => banana
[3] => orange
)
In diesem Beispiel verwandelt Array_flip () den Wert des ursprünglichen Array in einen Schlüssel und den ursprünglichen Schlüssel in einen Wert.
Die Funktion array_search () kann verwendet werden, um einen bestimmten Wert in einem Array zu finden und den entsprechenden Schlüssel zurückzugeben. Wenn ein Matching -Wert gefunden wird, gibt Array_Search () den Schlüssel des Wertes zurück. Wenn kein Übereinstimmungswert gefunden wird, wird False zurückgegeben.
<?php
$array = [
'apple' => 1,
'banana' => 2,
'orange' => 3
];
$key = array_search(2, $array);
echo "The key for value 2 is: " . $key;
?>
Ausgangsergebnis:
The key for value 2 is: banana
Wir können den Schlüssel, der einem Wert entsprechend entspricht, schnell mit der Funktion array_flip () so lokalisieren, dass sie die Werte und Tasten des Arrays austauschen und dann Array_Search () verwenden.
<?php
$array = [
'apple' => 1,
'banana' => 2,
'orange' => 3
];
// Umdrehen Sie zuerst das Array
$flipped = array_flip($array);
// verwenden array_search() Finden Sie den Schlüssel, der dem Wert entspricht
$key = array_search(2, $flipped);
echo "The original key for value 2 is: " . $key;
?>
Ausgangsergebnis:
The original key for value 2 is: banana
Diese Methode ist effizienter, da Array_flip () alle Werte als Schlüssel speichert, sodass Sie schnell finden können, indem Sie direkt die Tasten nachschlagen. Wenn Sie im Gegensatz dazu Array_Search () direkt verwenden, um die Schlüssel des Wertes im Originalarray zu finden, muss für jede Suche das gesamte Array durchgeführt werden. Durch die Umkehrung des Arrays wird der Suchprozess sehr effizient.
Diese Methode eignet sich für Szenarien, in denen wir häufig von Werten zu Schlüssel suchen müssen, um Schnellsuche zu erhalten. Wenn Sie beispielsweise über eine Reihe von Benutzerinformationen verfügen, die den Benutzernamen und die entsprechende Benutzer -ID enthält und häufig den Benutzernamen basierend auf der Benutzer -ID erhalten, kann die Kombination von Array_flip () und Array_Search () die Effizienz erheblich verbessern.
<?php
$userIDs = [
'John' => 1001,
'Jane' => 1002,
'Tom' => 1003
];
// Wille ID Als Schlüssel
$flippedUserIDs = array_flip($userIDs);
// Benutzer findenIDfür1002Benutzername
$username = array_search(1002, $flippedUserIDs);
echo "The username for userID 1002 is: " . $username;
?>
Ausgangsergebnis:
The username for userID 1002 is: Jane
Array_flip () kann nur Arrays verarbeiten, bei denen die Werte eindeutig sind. Wenn der Wert im Array im Wert Duplikate enthält, behält Array_flip () nur den letzten Wert als Schlüssel, und der vorherige Wert wird überschrieben.
Wenn Array_Search () den Wert nicht finden kann, gibt er FALSE zurück, sodass Sie bei der Verwendung des Rückgabewerts auf die Überprüfung des Rückgabewerts achten müssen.
Hoffentlich hilft Ihnen dieser Artikel besser zu verstehen, wie Sie array_flip () und array_search () verwenden, um schnell von Wert zum Schlüssel zu finden. Wenn Sie mehr Fragen haben oder weitere Hilfe benötigen, können Sie Fragen stellen!