Warning: Undefined array key
Résolu
LaChaux78
Messages postés
607
Statut
Membre
-
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 24281 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour, je n'arrive pas à comprendre cette erreur de Warning. Je travail en local avec wampserver. Si vous pouvez m'aider. Je vous remercie..
Warning: Undefined array key 2 in C:\wamp64\www\partitions\libs\init.php on line 9
function writeMenuV($index,$imp=0) {
$hf = fopen("./libs/smenu$index.txt","r");
while($line = trim(chop(fgets($hf,250)))) {
if($line == "---") {
$menu[count($menu)-1] .= "<hr size='1' noshade>"; }
else {
if(!isComment($line)) {
$item = explode(";",$line);
if(count($item) == 2) { $target = "main"; } else { $target = $item[2]; }
if(count($item) == 1) { $menu[] = "<div class=\"cat\">$line</div>"; }
else { $menu[] = "<a href='$item[1]' target='$target'>$item[0]</a><br/>"; }
}
}
}
$col = "<div class='mv'>";
for($n=0; $n<count($menu); $n++) { $col .= $menu[$n]; }
return $col."</div>";
}
A voir également:
- Undefined array key 0
- Warning: undefined array key "options" in - Meilleures réponses
- Warning: undefined array key - Meilleures réponses
- Warning zone telechargement - Accueil - Outils
- Téléchargement et streaming illégal : voici les adresses des sites pirates que les FAI vont bloquer - Accueil - Services en ligne
- Symbole warning word ✓ - Forum Word
- Cpu fan fail warning control - Forum Matériel & Système
- Comment faire le symbole attention ✓ - Forum Loisirs / Divertissements
3 réponses
Bonjour,
De ce que je comprends
if(count($item) == 2) { $target = "main"; } else { $target = $item[2]; }
Ici tu regardes si item a une taille de 2, mais tu prends le 3eme élément (item[2] c'est le 3eme, puisque le tableau commence sur l'index 0)
Or, item[2] n'existe pas, comme te l'indique le message d'erreur.
Bonjour,
Un array commence à 0
Si tu as deux éléments dans ton tableau.... tu as donc un élément à l'indice 0 et un autre à l'indice 1 .... l'indice 2 serait un troisième item....
Bonjour je vous remercie de m'avoir aidé à résoudre mon soucis. Bonne journée.
function writeMenuV($index) {
$hf = fopen("./libs/smenu$index.txt","r");
while($line = trim(chop(fgets($hf,250)))) {
if($line == "---") {
$menu[count($menu)-1] .= "<hr size='1' noshade>"; }
else {
if(!isComment($line)) {
$item = explode(";",$line);
if(count($item) == 1) { $menu[] = "<div class=\"cat\">$line</div>"; }
else { $menu[] = "<a href='$item[1]' target='main'>$item[0]</a><br/>"; }
}
}
}
$col = "<div class='mv'>";
for($n=0; $n<count($menu); $n++) { $col .= $menu[$n]; }
return $col."</div>";
}
Ok c'est pire que ça.
Tu écris : "si la longueur est 2 faire blabla, sinon prendre le 3eme élément".
Dans le else, ce n'est pas parce que la valeur n'est pas 2 qu'elle vaut 3. Elle peut valoir 0 aussi.
Donc si tu veux utiliser un élément du tableau, vérifie qu'il existe au moment de t'en servir.
si item == 2 alors target = main
si item == 3 alors target = item[2]