statistiques du tableau php différentes valeurs

王林
Libérer: 2023-05-06 11:35:08
original
357 Les gens l'ont consulté

Dans le développement PHP, les tableaux sont un type de données très couramment utilisé. Nous utilisons généralement des tableaux pour stocker une série de données. Parfois, nous devons compter différentes valeurs dans un tableau, par exemple compter le nombre de fois où différents éléments apparaissent dans un tableau. Cet article va vous montrer comment compter différentes valeurs dans un tableau en utilisant PHP.

  1. fonction array_count_values

PHP a une fonction intégréearray_count_values, qui peut être utilisée pour compter le nombre d'occurrences de chaque valeur dans un tableau. Le prototype de cette fonction est le suivant :array_count_values,可以用来统计数组中各个值出现的次数。该函数的原型如下:

array_count_values(array $array): array
Copier après la connexion

该函数需要一个数组作为参数,并返回一个关联数组,其中键是原始数组中的不同值,值是该值在原数组中出现的次数。例如:

$array = array(1, 1, 2, 3, 3, 3); $count = array_count_values($array); print_r($count);
Copier après la connexion

输出:

Array( [1] => 2 [2] => 1 [3] => 3 )
Copier après la connexion
Copier après la connexion

这里原数组是[1, 1, 2, 3, 3, 3],函数返回的关联数组中,键1在原数组中出现了 2 次,键2在原数组中出现了 1 次,键3在原数组中出现了 3 次。

需要注意的是,该函数只对索引数组和关联数组有效,对于其他类型的数组,会返回一个空数组。

  1. 自定义函数

除了使用array_count_values函数,我们也可以自己编写一个函数来完成类似的功能。以下是一个示例函数:

function array_count_unique(array $array): array { $counts = array(); foreach ($array as $value) { if (isset($counts[$value])) { $counts[$value]++; } else { $counts[$value] = 1; } } return $counts; }
Copier après la connexion

该函数接受一个数组,返回一个关联数组,其中键是原始数组中的不同值,值是该值在原数组中出现的次数。具体实现思路是通过遍历原数组,统计每个值出现的次数,然后以该值为键,出现次数为值,构造结果数组。

我们可以使用以下代码测试该函数:

$array = array(1, 1, 2, 3, 3, 3); $count = array_count_unique($array); print_r($count);
Copier après la connexion

输出:

Array( [1] => 2 [2] => 1 [3] => 3 )
Copier après la connexion
Copier après la connexion

array_count_values函数的结果相同。

需要注意的是,该函数只对索引数组和关联数组有效,对于其他类型的数组,会返回一个空数组。

  1. 性能比较

虽然使用 PHP 内置的array_count_values函数和自定义函数都可以完成统计数组中不同值的功能,但它们在性能上可能会有所不同。我们可以通过使用microtime函数来测试两种方法的性能。

以下是使用array_count_values函数的测试示例:

$array = range(1, 10000); shuffle($array); $start = microtime(true); $count = array_count_values($array); $end = microtime(true); echo 'array_count_values: ' . ($end - $start) . ' seconds';
Copier après la connexion

以下是使用自定义函数的测试示例:

$array = range(1, 10000); shuffle($array); $start = microtime(true); $count = array_count_unique($array); $end = microtime(true); echo 'array_count_unique: ' . ($end - $start) . ' seconds';
Copier après la connexion

两个测试示例的输入相同,都是一个长度为 10000 的随机数组,输出每个方法执行的时间。我们可以多次运行这两个代码片段,比较两个函数的平均运行时间。

在本人测试的环境中,两个方法的时间差异不太明显,通常array_count_unique函数略快于array_count_values函数,但两者的差异不大。因此,在实际应用中,可以根据需要选择适当的方法。

总结

本文介绍了如何使用 PHP 统计数组中不同的值。我们可以使用 PHP 内置的array_count_valuesrrreee

Cette fonction prend un tableau comme paramètre et renvoie un tableau associatif, où les clés sont les différentes valeurs du tableau d'origine et la valeur est le nombre de fois que la valeur apparaît dans le tableau d'origine. Par exemple : rrreeeSortie : rrreeeLe tableau d'origine ici est [1, 1, 2, 3, 3, 3], et dans le tableau associatif renvoyé par la fonction, la clé est 1apparaît 2 fois dans le tableau d'origine, la clé 2apparaît 1 fois dans le tableau d'origine et la clé 3apparaît 3 fois dans le tableau d'origine. tableau d'origine. Il est à noter que cette fonction n'est valable que pour les tableaux d'index et les tableaux associatifs. Pour les autres types de tableaux, un tableau vide sera renvoyé.
    Fonction personnaliséeEn plus d'utiliser la fonction array_count_values, nous pouvons également écrire nous-mêmes une fonction pour compléter des fonctions similaires. Voici un exemple de fonction : rrreee Cette fonction prend un tableau et renvoie un tableau associatif où les clés sont les valeurs distinctes dans le tableau d'origine et les valeurs sont le nombre de fois que la valeur apparaît dans le tableau d'origine. L'idée spécifique de l'implémentation est de parcourir le tableau d'origine, de compter le nombre d'occurrences de chaque valeur, puis d'utiliser la valeur comme clé et le nombre d'occurrences comme valeur pour construire le tableau de résultats. Nous pouvons tester cette fonction en utilisant le code suivant : rrreeeSortie : rrreee Même résultat que la fonction array_count_values. Il est à noter que cette fonction n'est valable que pour les tableaux d'index et les tableaux associatifs. Pour les autres types de tableaux, un tableau vide sera renvoyé.
      Comparaison des performancesBien que l'utilisation de la fonction array_count_valuesintégrée de PHP et des fonctions personnalisées puisse compléter la fonction de comptage de différentes valeursdans un tableau, elles peut ne pas être aussi efficace en termes de performances, cela peut varier. Nous pouvons tester les performances des deux méthodes en utilisant la fonction microtime. Ce qui suit est un exemple de test utilisant la fonction array_count_values: rrreeeCe qui suit est un exemple de test utilisant une fonction personnalisée : rrreeeL'entrée des deux exemples de test est la même, les deux sont une chaîne aléatoire d'une longueur de 10 000 Array qui affiche le temps d'exécution de chaque méthode. Nous pouvons exécuter ces deux extraits de code plusieurs fois et comparer la durée d'exécution moyenne des deux fonctions. Dans l'environnement que j'ai testé, la différence de temps entre les deux méthodes n'est pas évidente. Habituellement, la fonction array_count_uniqueest légèrement plus rapide que la fonction array_count_values, mais la différence entre les deux, ce n'est pas grand. Par conséquent, dans les applications pratiques, la méthode appropriée peut être sélectionnée en fonction des besoins. RésuméCet article présente comment utiliser PHP pour compter différentes valeursdans un tableau. Nous pouvons utiliser la fonction array_count_valuesintégrée à PHP, ou nous pouvons écrire une fonction nous-mêmes. Les deux méthodes accomplissent des fonctions similaires, mais avec des performances légèrement différentes. Dans les applications pratiques, la méthode appropriée peut être sélectionnée en fonction des besoins.

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
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!