Les valeurs des clés du tableau PHP sont inversées, ce qui a un grand impact sur les performances PK

WBOY
Libérer: 2024-05-04 13:21:01
original
1008 Les gens l'ont consulté

L'impact sur les performances de l'utilisation de array_flip() pour inverser les valeurs des clés du tableau : le temps d'exécution augmente de O(n^2) avec la taille du tableau. Cas pratique : Récupérer la clé d'un tableau associatif par valeur.

PHP 数组键值颠倒,性能影响大 PK

Inversion de la valeur clé d'un tableau PHP : impact sur les performances et cas pratiques

En PHP, le tableau est une structure de données couramment utilisée, nous devons parfois inverser la valeur clé d'un tableau. Il s’agit d’une opération courante, mais son impact sur les performances est souvent négligé.

PHP fournit la fonction array_flip() pour ce faire. Cette fonction renvoie un nouveau tableau dans lequel les clés du tableau d'origine sont inversées. array_flip() 函數來執行此操作。該函數返回一個新的數組,其中原數組的鍵值被顛倒。

讓我們比較一下在不同大小的數組上使用 array_flip() 函數的性能:

$array1 = range(0, 9999);
$array2 = range(0, 99999);
$array3 = range(0, 999999);

$time_start = microtime(true);
$flipped_array1 = array_flip($array1);
$time_end = microtime(true);
$elapsed_time1 = $time_end - $time_start;

$time_start = microtime(true);
$flipped_array2 = array_flip($array2);
$time_end = microtime(true);
$elapsed_time2 = $time_end - $time_start;

$time_start = microtime(true);
$flipped_array3 = array_flip($array3);
$time_end = microtime(true);
$elapsed_time3 = $time_end - $time_start;

echo "執行時間:\n";
echo "10,000 個元素:$elapsed_time1 秒\n";
echo "100,000 個元素:$elapsed_time2 秒\n";
echo "1,000,000 個元素:$elapsed_time3 秒\n";
Copier après la connexion

從結果中,我們可以看出,使用 array_flip() 函數的執行時間會隨著數組大小的增加而增加。這是因為 array_flip() 函數在內部使用了一個巢狀迴圈,其複雜度為 O(n^2)。

實戰案例

一個使用 array_flip()

Comparons les performances de l'utilisation de la fonction array_flip() sur des tableaux de différentes tailles : 🎜
$associated_array = [
    "red" => "#FF0000",
    "blue" => "#0000FF",
    "green" => "#00FF00",
];

$flipped_array = array_flip($associated_array);

echo $flipped_array["#00FF00"]; // 輸出:green
Copier après la connexion
🎜D'après les résultats, nous pouvons voir qu'en utilisant array_flip() Le temps d'exécution de la fonction augmente à mesure que la taille du tableau augmente. En effet, la fonction array_flip() utilise une boucle imbriquée en interne, qui a une complexité de O(n^2). 🎜🎜🎜Cas pratique🎜🎜🎜Un cas pratique utilisant la fonction array_flip() est d'inverser les valeurs clés​​d'un tableau associatif, afin que la clé puisse être obtenue par valeur. Par exemple : 🎜rrreee

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal