MartinM: Probleme mit Variablen im Array

Hallo,

Das Problem liegt im folgenden Quellcode

<?
//  MP = aktuelle Menüpunkt
//  UP = Unterpunkte
//  ID = Identifikationsnummer
$intAnzahlUP = 6;
$intMPID = 2;

// Dieser Code überprüft, erst ob man sich auf der Seite eines Unterpunktes befindet.
// Wenn ja highlighted er den Menüpunkt
  for ($intCount = 0; $intCount <= ($intAnzahlUP); $intCount++)
   {
    if ( $intMPID == $intCount and $intMPID != 0)
     {
      $arrStyleUP = array ($intCount => "highlight<br>");
     }
    else
     {
      $arrStyleUP = array($intCount => "normal<br>");
     }
    echo $arrStyleUP[$intCount];
   }

echo $arrStyleUP[1];
 echo $arrStyleUP[2];
 echo $arrStyleUP[3];
?>

Das Problem liegt darin, dass ich immer den Fehler auftritt.

Notice: Undefined offset: 1 in ...
Notice: Undefined offset: 2 in ...
Notice: Undefined offset: 3 in ...

Wenn ich das richtig verstehe, fehlen Zuordnungen zu den Zahlen. Aber ich habe vorher in for Schleife über die Variable $intCount doch alle  Felder von 0 bis 6 mit entweder "normal" oder "highlighted" gespickt.  Ich muss irgendendwo einen Fehler haben.

Ich habe nach jedem Durchlauf die Variable $arrStyleUP[$intCount] ausgegeben. Zumindest kam da immer das richtige Ergebnis.

Kann mir jemand sagen, wo mein Fehler liegt.

Danke

Martin

  1. hi,

    Aber ich habe vorher in for Schleife über die Variable $intCount doch alle  Felder von 0 bis 6 mit entweder "normal" oder "highlighted" gespickt.  Ich muss irgendendwo einen Fehler haben.

    du überschreibst dir doch dein array in jedem schleifendurchlauf wieder!

    $arrStyleUP = array ($intCount => "highlight<br>");

    das erzeugt ein _neues_ array mit genau einem element. und diesen vorgang wiederholst du mehrmals ...

    gehe stattdessen beispielsweise folgendermaßen vor:

    $arrStyleUp = array(); //deklaration als array _vor_ der schleife

    schleife(...) {
        $arrStyleUp[] = $neuer_wert; // fügt jeweils ein neues element
                                        ins array ein, mit fortlaufender
                                        nummerierung

    $arrStyleUp[$key] = $neuer_wert; // fügt einen neuen wert ins
                                            array ein, mit dem von dir
                                            explizit vorgegebenen
                                            schlüssel $key (bzw.
                                            überschreibt den inhalt des
                                            elementes mit dem schlüssel
                                            $key, sofern schon vorhanden)
    }

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."