Array_count_values est une fonction très pratique en PHP qui compte le nombre d'occurrences de toutes les valeurs dans un tableau. Cette fonction renvoie un tableau associatif où les clés du tableau sont les valeurs dans le tableau d'origine, et les valeurs du tableau sont le nombre de fois que ces valeurs apparaissent dans le tableau d'origine.
Cependant, parfois lorsque vous utilisez Array_count_values , vous pouvez constater que les valeurs booléennes ( vrai et false ) et null n'apparaissent pas dans les statistiques. Pourquoi est-ce? Analyons-le aujourd'hui.
Tout d'abord, passons en revue l'utilisation de base de la fonction array_count_values . Cette fonction prend un tableau comme argument et renvoie un nouveau tableau, en comptant le nombre d'occurrences de chaque élément dans le tableau. Par exemple:
$arr = ['apple', 'banana', 'apple', 'orange', 'banana', 'banana'];
$result = array_count_values($arr);
print_r($result);
La sortie sera:
Array
(
[apple] => 2
[banana] => 3
[orange] => 1
)
Ensuite, nous analysons pourquoi Boolean et Null sont ignorés.
Dans PHP, les valeurs booléennes True et False sont converties en valeurs entières 1 et 0 , et dans la fonction array_count_values , les valeurs booléennes sont considérées comme la même valeur. Plus précisément, True et False sont traités comme les mêmes 1 et 0 , et Array_count_values les fusionnent lors du traitement des tableaux. Par conséquent, s'il y a plusieurs valeurs booléennes dans le tableau, leurs occurrences seront fusionnées dans la valeur entière correspondante au lieu de compter séparément les valeurs booléennes.
$arr = [true, false, true, 1, 0];
$result = array_count_values($arr);
print_r($result);
La sortie sera:
Array
(
[1] => 3
[0] => 2
)
Vous pouvez voir que True et 1 sont fusionnés en 1 , tandis que FAUX et 0 sont fusionnés en 0 , de sorte que la valeur booléenne n'est pas comptée séparément.
Pour les valeurs nuls , PHP a également un comportement spécial lors du traitement des tableaux. Lorsque Array_count_values est utilisé, Null est ignoré car il est généralement considéré comme "nul" en php. Si vous devez compter le nombre d'occurrences de NULL , vous pouvez envisager d'abord de le convertir en une autre valeur ou de le traiter par d'autres moyens.
Par exemple, considérez le code suivant:
$arr = [NULL, 'apple', NULL, 'banana', 'apple'];
$result = array_count_values($arr);
print_r($result);
La sortie sera:
Array
(
[apple] => 2
[banana] => 1
)
Comme vous pouvez le voir, NULL n'apparaît pas dans le résultat. Pour résoudre ce problème, vous pouvez remplacer toutes les valeurs nuls par une valeur spécifique, telle que «null» avant d'appeler Array_count_values , puis d'effectuer des statistiques.
$arr = [NULL, 'apple', NULL, 'banana', 'apple'];
$arr = array_map(function($value) {
return $value === NULL ? 'NULL' : $value;
}, $arr);
$result = array_count_values($arr);
print_r($result);
La sortie sera:
Array
(
[NULL] => 2
[apple] => 2
[banana] => 1
)
De cette façon, vous pouvez inclure des valeurs nulles lors de l'indice.
Array_count_values est une fonction très pratique pour compter le nombre d'occurrences de chaque valeur dans un tableau. Cependant, parce que les valeurs booléennes et nulles en PHP ont des comportements de conversion et d'ignorance spéciaux lors du traitement, ils ne sont pas comptés séparément. Si vous devez traiter ces cas spéciaux, vous pouvez remplacer manuellement ces valeurs avant d'appeler Array_count_values , ou taper la conversion pour vous assurer qu'elles peuvent être comptées correctement.
Contenu final: