Maison  >  Article  >  développement back-end  >  Échange clé-valeur de tableau PHP : quelle solution est la plus efficace ?

Échange clé-valeur de tableau PHP : quelle solution est la plus efficace ?

WBOY
WBOYoriginal
2024-05-02 21:39:02971parcourir

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.

PHP 数组键值互换:哪种方案效率最高?

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

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

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

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

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

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

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn