Maison >développement back-end >tutoriel php >Comment puis-je compter efficacement les occurrences de valeurs spécifiques dans un tableau PHP ?

Comment puis-je compter efficacement les occurrences de valeurs spécifiques dans un tableau PHP ?

DDD
DDDoriginal
2024-12-01 05:52:11368parcourir

How Can I Efficiently Count Occurrences of Specific Values in a PHP Array?

Comptage des valeurs dans un tableau à l'aide de Array_count_values

Lorsque vous travaillez avec des tableaux, il est souvent nécessaire de compter l'occurrence de valeurs spécifiques. Par exemple, considérons un tableau contenant à la fois des valeurs vides et non vides :

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

L'objectif est de déterminer efficacement le nombre de valeurs vides dans le tableau, en particulier pour les tableaux plus grands contenant des centaines d'éléments.

Dans un premier temps, nous pourrions envisager une itération simple :

function without($array) {
    $counter = 0;
    for($i = 0, $e = count($array); $i < $e; $i++) {
        if(empty($array[$i])) {
            $counter += 1;
        }
    }
    return $counter;
}

Cependant, cette approche peut être inefficace pour les tableaux plus grands. PHP propose une solution plus optimisée en utilisant la fonction array_count_values. Cette fonction prend un tableau en entrée et renvoie un tableau avec des clés représentant les valeurs du tableau d'entrée et des valeurs représentant le nombre de chaque valeur.

$counts = array_count_values($array);

Le résultat serait :

array(
    '' => 3,
    'other' => 2
)

Pour compter le nombre de valeurs vides, accédez simplement à la clé correspondante :

$blank_count = $counts[''];

Cette approche est nettement plus efficace que la méthode itérative, notamment pour les grands tableaux.

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