array durchlaufen ohne offset Meldungen ???

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • array durchlaufen ohne offset Meldungen ???

    Folgendes Array soll mit folgendem code wie unter ersichtlich ausgegeben werden. Das klappt auch, nur tauchen immer diese "Notice: Undefined offset: ... " Meldungen auf.
    PHP-Code:
    Array
    (
        [
    0] => Array
            (
                [
    0] => Array
                    (
                        [
    0] => a
                        
    [1] => b
                        
    [2] => c
                    
    )

                [
    1] => Array
                    (
                        [
    0] => b
                        
    [1] => w
                        
    [2] => d
                    
    )

    PHP-Code:
    $size0count($result);
    $size1count($result[0]);


    for (
    $i 0$i $size0$i++) {
        for (
    $j 0$j $size1$j++) {
    echo 
    $result[$i][$j][0]."|".$result[$i][$j][1]."|".$result[$i][$j][2]."<br>";

    #        $zeilen =    $result[0][$i][0]."|".trim($title)."|".trim($domain);
    }

    Wie kann ich dieses Array durch laufen und so ausgeben:
    a|b|c
    b|w|d
    ohne diese Hinweise zu erhalten:
    Notice: Undefined offset: 1 in /var/www/web22/web/get/array7.php on line 107
    Zuletzt geändert von janein; 31.03.2008, 20:47.

  • #2
    also bei der menge code läßt sich das so nicht beurteilen.
    1. was steht in zeile sieben?
    2. in welchem zusammenhang werden $size0 und $size1 definiert?

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Original geschrieben von Kropff
      1. was steht in zeile sieben?
      PHP-Code:
      echo $result[$i][$j][0]."|".$result[$i][$j][1]."|".$result[$i][$j][2]."<br>"
      Original geschrieben von Kropff
      2. in welchem zusammenhang werden $size0 und $size1 definiert?
      $size0 und $size1 sollen nur die Länge der array zählen, des Beispielarrays oben. Es nur das array durchlaufen und und zeilenweise ausgegeben werden, wie aus der echo Zeile ersichtlich.

      Kommentar


      • #4
        und wenn zu dem zeitpunkt $result noch nicht definiert wurde, dann gibt es solche meldungen. also sollte da zumindest eine bedingung stehen.

        gruß
        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          Original geschrieben von Kropff
          und wenn zu dem zeitpunkt $result noch nicht definiert wurde, dann gibt es solche meldungen. also sollte da zumindest eine bedingung stehen.
          $result ist aber definiert und ändert sich nicht.

          Wie finde ich heraus wie viele Werte ein mehrdimensionales Array enthält? Evt. ist auch die obige count() Methode nicht richtig??

          Kommentar


          • #6
            um das zu beurteilen, benötige ich mehr code. und mehr schlaf, da sie mir am we mal wieder eine stunde geklaut haben.

            peter
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              Original geschrieben von Kropff
              um das zu beurteilen, benötige ich mehr ... mehr schlaf, da sie mir am we mal wieder eine stunde geklaut haben.
              Warte ein paar Monate, also einen Augenblick und Du bekommst sie wieder :-) Eine andere Möglichkeit wäre, noch mal mit Kinderaugen die Dinge beobachten. Dann ist ein Tag wie ein Jahr ...

              Kommentar


              • #8
                Dein Array geht aber noch weiter, oder? Bei deinem Beispiel klappt ja alles wunderbar.

                Meine Vermutung:
                Du hast dann zb. $result[0] und $result[1]. Jetzt hat $result[0] mehr Einträge als $result[1]. Durch deine Schleife läuft dann zb. ein $result[0][5][x] und dann auch ein $result[1][5][x], obwohl letzteres vlt. gar nicht vorhanden ist. Kann das sein?

                PHP-Code:
                if (isset($result[$i][$j])) {
                    echo 
                $result[$i][$j][0]."|".$result[$i][$j][1]."|".$result[$i][$j][2]."<br>";

                Assembler ist eine Methode,
                Programme, die zu langsam laufen,
                so umzuschreiben,
                dass sie überhaupt nicht mehr laufen.

                Kommentar


                • #9
                  Ja, das array ist tatsächlich länger ... und genauso wie Dein Vorschlag habe ich es auch gerade probiert und es klappt ohne Meldungen. Danke für Deinen Vorschlag.

                  Kommentar

                  Lädt...
                  X