Maison > Article > développement back-end > Échange clé-valeur de tableau PHP : algorithme et analyse des performances de l'échange clé-valeur séquentiel
L'échange clé-valeur de tableau PHP a deux algorithmes : un échange clé-valeur simple et un échange clé-valeur séquentiel. Le premier parcourt le tableau et stocke les valeurs clés dans un nouveau tableau en correspondance biunivoque, tandis que le second utilise les fonctions array_values() et array_keys() pour échanger les valeurs clés dans l'ordre. Les tests de performances montrent que l'algorithme d'échange clé-valeur séquentiel est nettement plus rapide que l'algorithme d'échange clé-valeur simple lorsque le tableau est grand.
En PHP, un tableau est une collection ordonnée qui stocke et gère des données. Parfois, nous devons échanger les valeurs clés du tableau, ce qui peut être réalisé par l'algorithme suivant :
function swapArrayKeysValues(array $array): array { $flippedArray = []; foreach ($array as $key => $value) { $flippedArray[$value] = $key; } return $flippedArray; }
Afin de saisir dans l'ordre des valeurs clés du tableau Pour échanger des valeurs, nous pouvons utiliser l'algorithme suivant :
function orderedSwapArrayKeysValues(array $array): array { $values = array_values($array); $keys = array_keys($array); return array_combine($values, $keys); }
Pour comparer les performances des deux algorithmes, nous avons comparé un tableau de 10 000 éléments :
$array = range(1, 10000); // 简单键值互换 $start = microtime(true); $result = swapArrayKeysValues($array); $end = microtime(true); echo "简单键值互换耗时:" . ($end - $start) . " 秒\n"; // 按序键值互换 $start = microtime(true); $result = orderedSwapArrayKeysValues($array); $end = microtime(true); echo "按序键值互换耗时:" . ($end - $start) . " 秒\n";
Sortie :
简单键值互换耗时:0.034162014007568 秒 按序键值互换耗时:0.0016639256477356 秒
L'analyse des performances montre, le L'algorithme d'échange clé-valeur séquentiel est nettement plus rapide que l'algorithme simple 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!