Maison > développement back-end > tutoriel php > É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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Libérer: 2024-05-03 13:15:01
original
854 Les gens l'ont consulté

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;
}
Copier après la connexion

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);
}
Copier après la connexion

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";
Copier après la connexion

Sortie :

简单键值互换耗时:0.034162014007568 秒
按序键值互换耗时:0.0016639256477356 秒
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Derniers numéros
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal