Die beste Lösung für PHP-Schlüsselwert-Swap-Arrays ist array_flip(), da sie am effizientesten ist und keine Erstellung temporärer Variablen erfordert. Andere Lösungen sind je nach Array-Typ und Anforderungen weniger effizient.
PHP-Array-Schlüssel-Wert-Austausch: Welche Lösung ist die effizienteste
Wenn Sie in PHP die Schlüssel-Wert-Paare eines Arrays austauschen müssen, stehen mehrere Methoden zur Auswahl und die Effizienz Die einzelnen Methoden sind ebenfalls unterschiedlich. Nachfolgend finden Sie eine Analyse dieser Methoden sowie Empfehlungen für Best Practices für verschiedene Szenarien.
Option 1: array_flip()
<?php $array = ['a' => 1, 'b' => 2, 'c' => 3]; $flippedArray = array_flip($array); print_r($flippedArray); // 输出: // [1 => 'a', 2 => 'b', 3 => 'c']
Option 2: array_combine()
<?php $keys = ['a', 'b', 'c']; $values = [1, 2, 3]; $flippedArray = array_combine($values, $keys); print_r($flippedArray); // 输出: // [1 => 'a', 2 => 'b', 3 => 'c']
Option 3: Funktionsdefinition
<?php function flipArray($array) { $flippedArray = []; foreach ($array as $key => $value) { $flippedArray[$value] = $key; } return $flippedArray; } $array = ['a' => 1, 'b' => 2, 'c' => 3]; $flippedArray = flipArray($array); print_r($flippedArray); // 输出: // [1 => 'a', 2 => 'b', 3 => 'c']
Option 4: Dekonstruktion
<?php $array = ['a' => 1, 'b' => 2, 'c' => 3]; [$flippedArray] = [array_flip($array)]; print_r($flippedArray); // 输出: // [1 => 'a', 2 => 'b', 3 => 'c']
Praktischer Fall
Annahme Es gibt ein Array mit Schülernamen und Noten:
<?php $students = [ 'Alice' => 90, 'Bob' => 85, 'Carol' => 95 ];
Um Schülernamen nach Noten zu sortieren, können Sie den folgenden Code verwenden:
<?php // 键值互换数组 $flippedStudents = array_flip($students); // 键(分数)排序 ksort($flippedStudents); // 获取排序的键(学生姓名) $sortedNames = array_keys($flippedStudents); print_r($sortedNames); // 输出: // [Bob, Alice, Carol]
Effizienzanalyse
Option 1: array_flip() Effizienz Höchste Effizienz, da es sich um eine in PHP integrierte Funktion handelt und keine temporären Variablen erstellt werden müssen. <code>array_flip()
效率最高,因为它是 PHP 的内置函数,无需创建任何临时变量。
方案 2:array_combine()
的效率低于 array_flip()
,因为它需要两个单独的数组才能进行组合。
方案 3:自定义函数的效率低于 array_flip()
,因为它需要使用循环遍历数组。
方案 4:解构的效率与 array_flip()
相同,但它只有在需要翻转复合数组(即包含数组作为值)时才有效。
因此,对于大多数用例,array_flip()
array_combine()
ist weniger effizient als array_flip()
, da zum Kombinieren zwei separate Arrays erforderlich sind. 🎜🎜🎜Option 3🎜: Die benutzerdefinierte Funktion ist weniger effizient als array_flip()
, da sie eine Schleife zum Durchlaufen des Arrays erfordert. 🎜🎜🎜Option 4🎜: Destrukturierung ist genauso effizient wie array_flip()
, funktioniert aber nur, wenn Sie ein zusammengesetztes Array umdrehen müssen (d. h. ein Array als Wert enthalten). 🎜🎜Für die meisten Anwendungsfälle ist 🎜array_flip()
🎜 also die effizienteste Lösung für den Schlüsselwert-Austausch von Arrays. 🎜Das obige ist der detaillierte Inhalt vonPHP-Array-Schlüsselwertaustausch: Welche Lösung ist die effizienteste?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!