Maison > développement back-end > tutoriel php > Quelle méthode de transformation de tableau PHP est la plus rapide : foreach, array_map avec Lambda ou array_map avec fonction statique ?

Quelle méthode de transformation de tableau PHP est la plus rapide : foreach, array_map avec Lambda ou array_map avec fonction statique ?

DDD
Libérer: 2024-12-07 01:44:10
original
1036 Les gens l'ont consulté

Which PHP Array Transformation Method is Fastest: foreach, array_map with Lambda, or array_map with Static Function?

Comparaison des performances de Foreach, Array_Map avec Lambda et Array_Map avec fonction statique

Cet article évalue les différences de performances entre trois approches pour transformer un array : utiliser foreach, utiliser array_map avec les fonctions lambda/closure et utiliser array_map avec 'static' fonctions/méthodes.

foreach

$result = array();
foreach ($numbers as $number) {
    $result[] = $number * 10;
}
return $result;
Copier après la connexion

Carte avec lambda

return array_map(function($number) {
    return $number * 10;
}, $numbers);
Copier après la connexion

Carte avec ' fonction static', passée sous forme de chaîne référence

function tenTimes($number) {
    return $number * 10;
}
return array_map('tenTimes', $numbers);
Copier après la connexion

Benchmarks de performances

Les benchmarks réalisés à l'aide de différentes versions de PHP (5.6, 7 et HHVM) ont révélé les résultats suivants :

PHP Version Foreach MapClosure MapNamed MapClosureI ForEachI
5.6 0.57 0.59 0.69 0.73 0.60
7 0.11 0.16 0.11 0.19 0.11
HHVM 0.09 0.10 0.10 0.11 0.09

En général, foreach et array_map avec les fonctions lambda présentaient des performances similaires. Array_map avec des fonctions statiques était légèrement plus lent. L'utilisation de fermetures avec des instructions d'utilisation a introduit une pénalité de performances notable.

Conclusion

Le choix entre ces approches dépend du cas d'utilisation spécifique et de facteurs tels que la lisibilité du code, la maintenabilité, et les performances. Pour des transformations simples, foreach et array_map avec les fonctions lambda offrent des performances comparables et fournissent une syntaxe concise. Pour des transformations plus complexes, array_map avec des fonctions statiques permet une structure de code plus propre et réutilisable, mais avec un compromis potentiel en termes de performances.

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!

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