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
DDDoriginal
2024-12-07 01:44:101001parcourir

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;

Carte avec lambda

return array_map(function($number) {
    return $number * 10;
}, $numbers);

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

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!

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