La meilleure solution pour le tableau d'échange clé-valeur PHP est array_flip(), car elle est la plus efficace et ne nécessite pas la création de variables temporaires. D'autres solutions sont moins efficaces, selon le type de baie et les exigences.
Échange clé-valeur d'un tableau PHP : quelle solution est la plus efficace
En PHP, lorsque vous devez échanger les paires clé-valeur d'un tableau, vous avez le choix entre plusieurs méthodes, et l'efficacité de chaque méthode est également différente. Vous trouverez ci-dessous une analyse de ces méthodes, ainsi que des recommandations de meilleures pratiques pour différents scénarios.
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 : Définition de la fonction
<?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']
Déconstruction
<?php $array = ['a' => 1, 'b' => 2, 'c' => 3]; [$flippedArray] = [array_flip($array)]; print_r($flippedArray); // 输出: // [1 => 'a', 2 => 'b', 3 => 'c']
Cas pratique
Assomption Il existe un tableau contenant les noms et les notes des étudiants :
<?php $students = [ 'Alice' => 90, 'Bob' => 85, 'Carol' => 95 ];
Afin de trier les noms des étudiants par notes, vous pouvez utiliser le code suivant :
<?php // 键值互换数组 $flippedStudents = array_flip($students); // 键(分数)排序 ksort($flippedStudents); // 获取排序的键(学生姓名) $sortedNames = array_keys($flippedStudents); print_r($sortedNames); // 输出: // [Bob, Alice, Carol]
Analyse d'efficacité
Option 1 : array_flip() Efficacité La plus élevée, car il s'agit d'une fonction intégrée de PHP, pas besoin de créer de variables temporaires. <code>array_flip()
效率最高,因为它是 PHP 的内置函数,无需创建任何临时变量。
方案 2:array_combine()
的效率低于 array_flip()
,因为它需要两个单独的数组才能进行组合。
方案 3:自定义函数的效率低于 array_flip()
,因为它需要使用循环遍历数组。
方案 4:解构的效率与 array_flip()
相同,但它只有在需要翻转复合数组(即包含数组作为值)时才有效。
因此,对于大多数用例,array_flip()
array_combine()
est moins efficace que array_flip()
car il nécessite la combinaison de deux tableaux distincts. 🎜🎜🎜Option 3🎜 : La fonction personnalisée est moins efficace que array_flip()
car elle nécessite une boucle pour parcourir le tableau. 🎜🎜🎜Option 4🎜 : La déstructuration est aussi efficace que array_flip()
, mais elle ne fonctionne que lorsque vous devez retourner un tableau composite (c'est-à-dire contenir un tableau comme valeur). 🎜🎜Par conséquent, pour la plupart des cas d'utilisation, 🎜array_flip()
🎜 est la solution la plus efficace pour les tableaux d'échange clé-valeur. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!