In PHP gibt es mehrere gängige Methoden, die den Austausch der Array -Schlüsselwerte implementieren können. Verschiedene Methoden passen sich an verschiedene Szenarien an, und die Auswahl des richtigen Algorithmus kann die Leistung des Programms verbessern.
Array_flip () ist eine Funktion, die für den Wechsel für Arrayschlüsselwerte ausgelegt ist und hervorragend in der Leistung ausgeführt wird. Wenn das Array groß ist, ist es die beste Wahl.
$new_array = array_flip($old_array);
Schlüsselwert-Swaps werden durch manuelles Durchlaufen des Arrays durchgeführt. Diese Methode ist flexibel und kann an eine Vielzahl von Szenarien angepasst werden, insbesondere wenn das Array klein ist oder der Schlüsselwert eine bestimmte Beziehung hat.
$new_array = [];
foreach ($old_array as $key => $value) {
$new_array[$value] = $key;
}
Diese Methode erfolgt durch Extrahieren von Schlüssel und Werten in verschiedene Arrays getrennt und rekombiniert sie mit Array_combine (). Geeignet für Szenarien, in denen Schlüsselwerte miteinander verbunden sind.
$keys = array_keys($old_array);
$values = array_values($old_array);
$new_array = array_combine($values, $keys);
Die Auswahl verschiedener Algorithmen wird von einer Vielzahl von Faktoren beeinflusst, hauptsächlich einschließlich der Größe des Arrays, des Schlüsseltyps und der Beziehung zwischen Schlüsselwerten.
Für größere Arrays bietet Array_flip () eine optimale Leistung. Selbstschreibschleifen sind für die Verarbeitung kleiner Arrays geeignet.
Wenn die Tasten des Arrays Zeichenfolgen sind, ist der Betrieb der Tauschschlüsselwerte langsamer. Im Gegensatz dazu ist der numerische Schlüsselaustausch schneller.
Wenn es eine besondere Beziehung zwischen den Schlüssel und den Werten eines Arrays gibt (z. B. die Schlüssel sind numerische Werte und die Werte sind Zeichenfolgen), ist eine Selbstschreiberschleife oder Array_combine () besser geeignet.
$old_array = ['foo' => 1, 'bar' => 2];
// Effizienter Austausch von Schlüsselwerten unter Verwendung von Selbstschreibschleifen
$new_array = [];
foreach ($old_array as $key => $value) {
$new_array[$value] = $key;
}
$old_array = ['John' => 'Doe', 'Jane' => 'Smith'];
// verwenden array_flip() Holen Sie sich die beste Leistung
$new_array = array_flip($old_array);
$old_array = [1 => 'foo', 2 => 'bar', 3 => 'baz'];
// verwenden array_combine() Und array_values() Schüsswerte Korrelation erhalten
$keys = array_keys($old_array);
$values = array_values($old_array);
$new_array = array_combine($values, $keys);
In diesem Artikel werden mehrere gemeinsame Algorithmen für den Schlüsselwertabtausch von PHP-Arrays eingeführt und analysiert deren Leistungseinflussfaktoren. Durch die Auswahl des geeigneten Algorithmus gemäß den tatsächlichen Bedingungen kann die Codesteuereffizienz erheblich verbessert werden.