2010-11-23 4 views
0

Je voudrais pouvoir utiliser array_count_values ​​de la manière suivante:L'erreur est retournée avec array_count_values ​​après avoir arrondi et en multipliant

$roundedans = 10 * round($groupdiff, 1); 
$diffarray[] = $roundedans; 

print_r(array_count_values($diffarray)); 

Les deux premières lignes font partie d'une boucle while qui insère roundedans $ dans le tableau et array_count_values ​​est appelé en dehors de la boucle.

Lorsque je tente d'exécuter le code je reçois cette erreur:

Warning: array_count_values() [function.array-count-values]: Can only count STRING and INTEGER values! in... 

C'est même si je l'ai converti toutes les valeurs à un nombre entier en multipliant par 10.

Toute aide être apprécié.

C'est la sortie de seulement print_r:

Array ([0] => 6 [1] => 15 [2] => 8 [3] => 13 [4] => -60 [5] => 1 [6] => -61 [7] => 7 [8] => 49 [9] => 26 [10] => -3 [11] => -66 [12] => 20 [13] => 10 [14] => 6 [15] => -94 [16] => -1 [17] => -6 [18] => -19 [19] => -1 [20] => 48 [21] => -4 [22] => 45 [23] => 21 [24] => -11 [25] => 19 [26] => 1 [27] => -10 [28] => 4 [29] => -14 [30] => 26 [31] => -1 [32] => -20 [33] => 8 [34] => -17 [35] => -2 [36] => -6) 

Pas non entiers.

+1

Afficher la sortie de 'print_r ($ diffarray);' –

+0

a ajouté la sortie – joshv2

+0

qui était une abréviation de la sortie, il y a réellement -0 valeurs dans le tableau. C'est le problème. – joshv2

Répondre

1

Utilisation:

$diffarray[] = intval($roundedans); 

Comme round() retourne toujours flotteur, le type ne changerait pas si vous multipliez avec 10.

intval() va changer le type.

Questions connexes