Maison >développement back-end >tutoriel php >Comment puis-je compter efficacement les éléments vides dans un grand tableau ?

Comment puis-je compter efficacement les éléments vides dans un grand tableau ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-04 21:36:12189parcourir

How Can I Efficiently Count Empty Elements in a Large Array?

Compter les valeurs d'un tableau avec efficacité

Avec un tableau contenant divers éléments, il est souvent nécessaire de compter les occurrences d'une valeur spécifique. Dans ce cas, on cherche à compter le nombre d'éléments vides dans un tableau.

Problème

Considérons le tableau suivant :

$array = array('', '', 'other', '', 'other');

Le défi est de compter efficacement le nombre d’éléments avec une valeur vide. Une approche naïve utilisant une boucle et une comparaison dépasse 30 secondes pour les grands tableaux comportant des centaines d'éléments.

Solution efficace

Pour améliorer l'efficacité, nous pouvons exploiter la fonction array_count_values. Cette fonction crée un tableau associatif où les clés représentent les valeurs du tableau et les valeurs correspondantes représentent leurs comptes respectifs.

function with($array) {
    $counts = array_count_values($array);
    return $counts[''];
}

Dans l'exemple de tableau, '' représente la valeur vide. En accédant à $counts[''], nous obtenons directement le nombre d'éléments vides, offrant des améliorations de vitesse significatives par rapport à une approche basée sur des boucles.

Utilisation

Pour utilisez cette solution, appelez simplement la fonction with, en passant le tableau à inspecter. Par exemple, avec le tableau donné :

$count = with($array); // $count will be 3

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