Maison développement back-end tutoriel php Échange clé-valeur de tableau PHP : comment optimiser les performances

Échange clé-valeur de tableau PHP : comment optimiser les performances

May 05, 2024 am 10:12 AM
php 键值对 Optimisation du tableau

Méthodes pour optimiser les performances d'échange clé-valeur du tableau PHP : Méthode naïve : parcourir le tableau et inverser les paires clé-valeur, ce qui est inefficace. Méthode d'optimisation : utilisez la fonction array_flip(), qui accepte un tableau associatif et renvoie un nouveau tableau avec les valeurs de clé échangées, réduisant ainsi considérablement la complexité temporelle.

PHP 数组键值互换:性能优化之道

Échange clé-valeur de tableau PHP : une arme magique pour améliorer les performances

Avant-propos
Lorsqu'il s'agit de tableaux PHP, les opérations d'échange clé-valeur sont très courantes. Cependant, la méthode d’échange naïve peut s’avérer inefficace, notamment lorsqu’il s’agit de grands tableaux. Cet article explorera un moyen efficace d'échanger des valeurs clés dans des tableaux PHP et démontrera ses avantages à travers des cas pratiques.

Glou d'étranglement des performances
Considérez la méthode naïve d'échange clé-valeur suivante :

function swapKeyValues($array) {
  $newArr = [];
  foreach ($array as $key => $value) {
    $newArr[$value] = $key;
  }
  return $newArr;
}
Copier après la connexion

Cette méthode crée d'abord un nouveau tableau, puis parcourt le tableau d'origine, en inversant chaque paire clé-valeur et en la stockant dans le nouveau tableau. Pour les petits tableaux, cette approche peut être assez rapide. Cependant, pour les grands tableaux contenant un grand nombre d’éléments, cette approche devient inefficace car elle nécessite de parcourir de manière répétée l’ensemble du tableau.

Méthode d'optimisation
Afin d'optimiser les performances, nous pouvons utiliser la fonction array_flip(). Cette fonction accepte un tableau associatif en entrée et renvoie un nouveau tableau avec les clés échangées. Cette méthode évite les parcours redondants et réduit considérablement la complexité temporelle de l’opération d’échange. array_flip() 函数。此函数接受一个关联数组作为输入,并返回一个交换键值的新数组。该方法避免了冗余遍历,大大减少了交换操作的时间复杂度。

function optimizedSwapKeyValues($array) {
  return array_flip($array);
}
Copier après la connexion

实战案例
为了展示优化方法的优势,我们创建了一个包含 100 万个元素的大数组,并使用计时函数分别测量朴素方法和优化方法的执行时间。

// 生成大数组
$array = array_fill(0, 1000000, null);
for ($i = 0; $i < count($array); $i++) {
  $array[$i] = rand(0, PHP_INT_MAX);
}

// 测量朴素方法的执行时间
$startTime = microtime(true);
$result1 = swapKeyValues($array);
$time1 = microtime(true) - $startTime;

// 测量优化方法的执行时间
$startTime = microtime(true);
$result2 = optimizedSwapKeyValues($array);
$time2 = microtime(true) - $startTime;

// 打印结果
echo "朴素方法执行时间:" . $time1 . " 秒\n";
echo "优化方法执行时间:" . $time2 . " 秒\n";
Copier après la connexion

结果
对于包含 100 万个元素的大数组,朴素方法和优化方法的执行时间分别为:

  • 朴素方法:3.15 秒
  • 优化方法:0.005 秒

优化方法比朴素方法快了近 630 倍!

结论
通过采用优化方法 array_flip()rrreee

🎜Cas pratique🎜🎜Pour démontrer les avantages de la méthode d'optimisation, nous avons créé un grand tableau contenant 1 million d'éléments et utilisé la fonction de timing pour mesurer respectivement le temps d'exécution de la méthode naïve et de la méthode d'optimisation. 🎜rrreee🎜🎜Résultats🎜🎜Pour un grand tableau contenant 1 million d'éléments, les temps d'exécution de la méthode naïve et de la méthode optimisée sont : 🎜
  • Méthode naïve : 3,15 secondes
  • Méthode optimisée : 0,005 secondes
🎜La méthode optimisée est près de 630 fois plus rapide que la méthode naïve ! 🎜🎜🎜Conclusion🎜🎜En adoptant la méthode d'optimisation array_flip(), l'opération d'échange clé-valeur de tableau en PHP peut améliorer considérablement les performances, en particulier lorsqu'il s'agit de grands tableaux. Ceci est essentiel pour optimiser les applications PHP, réduire le temps d’exécution et offrir une meilleure expérience utilisateur. 🎜

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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Configuration du projet CakePHP Configuration du projet CakePHP Sep 10, 2024 pm 05:25 PM

Dans ce chapitre, nous comprendrons les variables d'environnement, la configuration générale, la configuration de la base de données et la configuration de la messagerie dans CakePHP.

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

Date et heure de CakePHP Date et heure de CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Téléchargement de fichiers CakePHP Téléchargement de fichiers CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Routage CakePHP Routage CakePHP Sep 10, 2024 pm 05:25 PM

Dans ce chapitre, nous allons apprendre les sujets suivants liés au routage ?

Discuter de CakePHP Discuter de CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

CakePHP créant des validateurs CakePHP créant des validateurs Sep 10, 2024 pm 05:26 PM

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

See all articles