Maison  >  Article  >  développement back-end  >  Échange clé-valeur de tableau PHP : algorithme et analyse des performances de l'échange clé-valeur séquentiel

Échange clé-valeur de tableau PHP : algorithme et analyse des performances de l'échange clé-valeur séquentiel

WBOY
WBOYoriginal
2024-05-03 13:15:01787parcourir

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.

PHP 数组键值互换:按序键值互换的算法与性能分析

Échange clé-valeur de tableau PHP : algorithme et analyse des performances de l'échange clé-valeur séquentiel

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 :

Algorithme d'échange de valeurs de clé simple

function swapArrayKeysValues(array $array): array
{
    $flippedArray = [];
    foreach ($array as $key => $value) {
        $flippedArray[$value] = $key;
    }
    return $flippedArray;
}

Algorithme d'échange de valeurs de clé séquentielle

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);
}

Analyse des performances

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!

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