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.
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
该函数需要一个数组作为参数,并返回一个关联数组,其中键是原始数组中的不同值,值是该值在原数组中出现的次数。例如:
$array = array(1, 1, 2, 3, 3, 3); $count = array_count_values($array); print_r($count);
输出:
Array( [1] => 2 [2] => 1 [3] => 3 )
这里原数组是[1, 1, 2, 3, 3, 3]
,函数返回的关联数组中,键1
在原数组中出现了 2 次,键2
在原数组中出现了 1 次,键3
在原数组中出现了 3 次。
需要注意的是,该函数只对索引数组和关联数组有效,对于其他类型的数组,会返回一个空数组。
除了使用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; }
该函数接受一个数组,返回一个关联数组,其中键是原始数组中的不同值,值是该值在原数组中出现的次数。具体实现思路是通过遍历原数组,统计每个值出现的次数,然后以该值为键,出现次数为值,构造结果数组。
我们可以使用以下代码测试该函数:
$array = array(1, 1, 2, 3, 3, 3); $count = array_count_unique($array); print_r($count);
输出:
Array( [1] => 2 [2] => 1 [3] => 3 )
与array_count_values
函数的结果相同。
需要注意的是,该函数只对索引数组和关联数组有效,对于其他类型的数组,会返回一个空数组。
虽然使用 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';
以下是使用自定义函数的测试示例:
$array = range(1, 10000); shuffle($array); $start = microtime(true); $count = array_count_unique($array); $end = microtime(true); echo 'array_count_unique: ' . ($end - $start) . ' seconds';
两个测试示例的输入相同,都是一个长度为 10000 的随机数组,输出每个方法执行的时间。我们可以多次运行这两个代码片段,比较两个函数的平均运行时间。
在本人测试的环境中,两个方法的时间差异不太明显,通常array_count_unique
函数略快于array_count_values
函数,但两者的差异不大。因此,在实际应用中,可以根据需要选择适当的方法。
总结
本文介绍了如何使用 PHP 统计数组中不同的值。我们可以使用 PHP 内置的array_count_values
rrreee
[1, 1, 2, 3, 3, 3]
, et dans le tableau associatif renvoyé par la fonction, la clé est
1
apparaît 2 fois dans le tableau d'origine, la clé
2
apparaît 1 fois dans le tableau d'origine et la clé
3
apparaî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é.
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é.
array_count_values
inté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_unique
est 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_values
inté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!