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

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

WBOY
WBOYOriginal
2024-05-02 21:39:02971Durchsuche

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']

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

方案 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!

Stellungnahme:
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