Heim > Backend-Entwicklung > PHP-Tutorial > PHP-Array-Schlüsselwertaustausch: Welche Lösung ist die effizienteste?

PHP-Array-Schlüsselwertaustausch: Welche Lösung ist die effizienteste?

WBOY
Freigeben: 2024-05-02 21:39:02
Original
1016 Leute haben es durchsucht

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 数组键值互换:哪种方案效率最高?

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']
Nach dem Login kopieren

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']
Nach dem Login kopieren

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']
Nach dem Login kopieren

Option 4: Dekonstruktion

<?php
$array = ['a' => 1, 'b' => 2, 'c' => 3];

[$flippedArray] = [array_flip($array)];

print_r($flippedArray);
// 输出:
// [1 => 'a', 2 => 'b', 3 => 'c']
Nach dem Login kopieren

Praktischer Fall

Annahme Es gibt ein Array mit Schülernamen und Noten:

<?php
$students = [
  'Alice' => 90,
  'Bob' => 85,
  'Carol' => 95
];
Nach dem Login kopieren

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]
Nach dem Login kopieren

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 的内置函数,无需创建任何临时变量。

方案 2array_combine() 的效率低于 array_flip(),因为它需要两个单独的数组才能进行组合。

方案 3:自定义函数的效率低于 array_flip(),因为它需要使用循环遍历数组。

方案 4:解构的效率与 array_flip() 相同,但它只有在需要翻转复合数组(即包含数组作为值)时才有效。

因此,对于大多数用例,array_flip()

Option 2🎜: 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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage