J'essaie d'éviter d'utiliser array_count_values (trop lent) pour compter les occurrences, donc j'utilise une boucle foreach mais je reçois toujours ce message d'erreur même si le résultat s'imprime correctement !!!PHP: Quelle est l'erreur dans la boucle foreach?
PHP Notice: Undefined offset: 0 sur la ligne 5 PHP trace Stack:
$somearray=array(0,1,2,3,4,5,6,0,1,2,3,4,0,1,2);
$frequency=array();
foreach($somearray as $key => $val) {
$frequency[$somearray[$key]]++; //THIS IS LINE 5
}
print_r($frequency);
Il imprime correctement malgré tous les messages d'erreur émis:
Array
(
[0] => 3
[1] => 3
[2] => 3
[3] => 2
[4] => 2
[5] => 1
[6] => 1
)
Eh bien, vous commencez avec un tableau vide, donc il n'y a pas d'index '0' jusqu'à ce que vous le configuriez. –
Ce n'est pas une erreur, c'est seulement un avis. PHP dit "hé, vous essayez d'incrémenter quelque chose qui n'existe pas, donc je vais juste supposer une valeur initiale de 0" - ce qui arrive à être exactement ce que vous voulez. – rickdenhaan
Voir si la clé de tableau existe en premier. Sinon, initialisez-le. – aynber