PHP verfügt über drei am häufigsten verwendete Lösungen zum Konvertieren von Array-Schlüsselwerten: array_flip()-Funktion: die schnellste ksort()-Funktion: geeignet für Situationen, in denen Sortierschlüssel erforderlich sind Benutzerdefinierter Iterator: effizient für kleine Arrays
In PHP ist das Konvertieren von Array-Schlüsselwerten eine häufige Aufgabe. Dafür gibt es verschiedene Möglichkeiten, jede mit ihren eigenen Effizienzmerkmalen. In diesem Artikel werden die drei am häufigsten verwendeten Lösungen analysiert: die Funktion array_flip()
, die Funktion ksort()
und benutzerdefinierte Iteratoren. array_flip()
函数、ksort()
函数和自定义迭代器。
array_flip()
函数array_flip()
函数创建一个新的数组,其中键和值互换。这是转换数组键值的最快方法:
$array = ['a' => 1, 'b' => 2, 'c' => 3]; $flipped = array_flip($array); // $flipped = [1 => 'a', 2 => 'b', 3 => 'c']
ksort()
函数ksort()
函数对数组键进行排序。然后,可以将排序后的数组中的键作为新数组的键,值作为新数组的值:
$array = ['b' => 2, 'c' => 3, 'a' => 1]; ksort($array); // $array = ['a' => 1, 'b' => 2, 'c' => 3] $flipped = array_combine(array_keys($array), array_values($array)); // $flipped = [1 => 'a', 2 => 'b', 3 => 'c']
可以使用自定义迭代器来遍历原始数组并创建一个新数组,其中键和值互换:
$array = ['a' => 1, 'b' => 2, 'c' => 3]; $flipped = []; foreach ($array as $key => $value) { $flipped[$value] = $key; }
以下是一个将用户 ID 映射到用户名数组的实战案例:
// 假设 $users 是一个关联数组,键为用户 ID,值为用户名 $userIds = [10, 20, 30]; // 使用 `array_flip()` 函数创建映射 $usernameMap = array_flip($users); // 使用映射获取特定用户 ID 的用户名 $username = $usernameMap[20]; // 'user20'
在大多数情况下,array_flip()
函数是最快的解决方案。然而,当需要在转换后对键进行排序时,ksort()
array_flip()
-Funktionarray_flip()
-Funktion erstellt ein neues Array, in dem die Schlüssel und Werte vertauscht werden. Dies ist der schnellste Weg, Array-Schlüsselwerte zu konvertieren: rrreee
ksort()
-Funktionksort()
-Funktion sortiert Array-Schlüssel. Anschließend können Sie die Schlüssel im sortierten Array als Schlüssel des neuen Arrays und die Werte als Werte des neuen Arrays verwenden: 🎜rrreeearray_flip()
die schnellste Lösung. Wenn Schlüssel jedoch nach der Konvertierung sortiert werden müssen, ist die Methode ksort()
besser geeignet. Ein benutzerdefinierter Iterator kann auch für kleine Arrays effizient sein, seine Effizienz nimmt jedoch mit zunehmender Array-Größe ab. 🎜🎜Im Allgemeinen hängt die Wahl der Lösung vom jeweiligen Szenario und den Leistungsanforderungen ab. 🎜Das obige ist der detaillierte Inhalt vonPHP konvertiert Array-Schlüsselwerte: Effizienzanalyse verschiedener Lösungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!