3 Dimensionales Array + Foreach

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

  • 3 Dimensionales Array + Foreach

    Hi,
    ich möchte ein bauscript für ein Browsergame entwickeln und da hab ich folgendes problem:
    ich will mit in ner foreach Schleife auf ein 3 Dimensionales Array zugreifen, aber irgentwie ist das falsch, es kommt immer (mit Error Reporting) der Fehler "Notice: Undefined index: ...." naja das is der Code, ein aussschnitt
    PHP-Code:
        foreach ($type as $y)
        {
            
    $to $lv[$y] + 1;
            echo 
    $y." Stufe".$lv[$y]."<br>";
            echo 
    "Benötigt Holz: ".$build[$y][$to]['holz']."Marmor: ".$build[$y][$to]['marmor']."Dauer: ".$build[$y][$to]['zeit']."<br>";
            echo 
    "<a href=\"index.php?do=new&was=".$y."\">Ausbauen auf Stufe ".$lv[$y]."</a>";
            echo 
    "<br><br>";
        } 
    lv ist ein Asso...(ihr wisst schon was ich mein)array mit den Gebäudestufen, ich hab alles ma mit var_dump ausgegebn, das stimmt alles.
    Die datei mit den Daten fürs bauen wie lange es dauert oder wieviel holz oder so es brauch:

    PHP-Code:
    $build = array("Rathaus" => array("null","null",array( //Auf lv 2
                                    
    "holz"=>'500',
                                    
    "marmor"=>'100',
                                    
    "zeit"=>'123'
                            
    ),
                            array( 
    //Auf lv 3
                                    
    "holz"=>'1232',
                                    
    "marmor"=>'123',
                                    
    "zeit"=>'1233'
                            
    )
        )
    );

    $type = array("Rathaus"); 
    ausgabe ist dann :

    Rathaus Stufe
    Bnötigt Holz: nMarmor: nDauer: n
    Ausbauen auf Stufe

    ...mehr nicht
    brauche hilfe
    mfg Php-Noob

  • #2
    1. foreach beackert nur 1 Dimension
    2. ist es wirklich klug, die (halbe) Fehlermeldung geheim zu halten?
    Wir werden alle sterben

    Kommentar


    • #3
      1. Ok danke
      2. ....:
      Notice: Undefined index: Rathaus ...index.php on line 52

      Notice: Undefined variable: to ...in index.php on line 53

      Notice: Undefined index: in ...index.php on line 53

      Notice: Undefined index: Rathaus in ...index.php on line 55
      Rathaus Stufe
      Bnötigt Holz: nMarmor: nDauer: n

      Notice: Undefined index: Rathaus in ...index.php on line 57
      Zuletzt geändert von PHP-Nooob; 16.05.2009, 14:27.

      Kommentar


      • #4
        $to ist dort definiert.
        Du zeigst also den falschen Codeausschntt!

        Notice: Undefined index: in ...index.php on line 53
        Es gibt keine Variable in deinem Code namens "in".
        Wir werden alle sterben

        Kommentar


        • #5
          Ich finds ja immer wieder erheiternd, dass 90% der Anfänger immer irgendein Browser-Spiel programmieren wollen. Mal davon abgesehen, dass es inzwischen eh schon so viele Browser-Spiele wie Sand am Meer gibt und eines schlechter und nutzloser als das andere ist, ist es so, als würde ein Fahranfänger sofort mit einem Ferrari auf den Nürburgring fahren wollen, bevor er überhaupt gelernt hat mit einem einfachen Auto am Übungsplatz zu fahren.

          Kommentar


          • #6
            Zitat von h3ll Beitrag anzeigen
            Ich finds ja immer wieder erheiternd, dass 90% der Anfänger immer irgendein Browser-Spiel programmieren wollen. Mal davon abgesehen, dass es inzwischen eh schon so viele Browser-Spiele wie Sand am Meer gibt und eines schlechter und nutzloser als das andere ist, ist es so, als würde ein Fahranfänger sofort mit einem Ferrari auf den Nürburgring fahren wollen, bevor er überhaupt gelernt hat mit einem einfachen Auto am Übungsplatz zu fahren.
            Da hast du recht.
            Aber es werden bei einem "Spiel" auch einige Ansprüche verlangt und das hilft ungemein beim lernen!

            Gruß

            Kommentar


            • #7
              Naja ich wollt mich halt dran versuchen...
              @Combie:
              $to kommt da zum ersten mal vor, und $in gibts nich
              Aber komischer weise ist
              echo $y." Stufe".$lv[$y]."<br>";
              Zeile 53, die kommt ja garnicht darin vor >_<
              und nicht $to = .....

              Kommentar


              • #8
                ..und du bist dir sicher, dass es der Quellcode der index.php ist, den du da oben gepostet hast?

                Kommentar


                • #9
                  jo

                  ...der Komplette code....fehlt halt noch viel
                  PHP-Code:
                  <script type="text/javascript" src="prototype.js"></script>
                  <script type="text/javascript">

                  </script>
                  <?php
                  error_reporting
                  (E_ALL);
                  session_start();
                  include(
                  'build.inc.php');
                  mysql_connect('localhost','*****','****');
                  mysql_select_db('ma6');
                  $nick  'nooblike';
                  $stadt 'test';
                  $sql "SELECT * FROM build WHERE nick LIKE '".$nick."' AND stadt LIKE '".$stadt."'";
                  $res mysql_query($sql);
                  $lv mysql_fetch_assoc($res);
                  var_dump($lv);
                  if(
                  $_GET['do']=='new' and !empty($_GET['was']))
                  {
                      
                  $sql "SELECT * FROM z_bau WHERE nick = '$nick' AND stadt = '$stadt'";
                      
                  $m mysql_num_rows($sql);
                      if (
                  $m 2
                      {
                          
                  $f "Zuviele Bauaufträge!";    
                      }
                      else
                      {
                          if (
                  $m == 1)
                          {
                              
                  $res2 mysql_query($sql);
                              
                  $t mysql_fetch_object($res2);
                              
                  $when $build[$was][$auf]['zeit'] + $t->wann;
                              
                              unset(
                  $auf);
                          }
                      }
                      if(!isset(
                  $f))
                      {
                          
                          
                  header("location:**********");
                      }
                  }
                  elseif(
                  $_GET['do']=='abort')
                  {
                      
                      
                  header("location:***********");
                  }
                  if(isset(
                  $f) or !isset($do))
                  {
                      echo 
                  "<div id=\"container\"></div><br><br>";    
                      foreach (
                  $type as $y)
                      {
                          
                  $to $lv[$y] + 1;
                          echo 
                  $y." Stufe".$lv[$y]."<br>";
                          echo 
                  "Benötigt Holz: ".$build[$y][$to]['holz']."Marmor: ".$build[$y][$to]['marmor']."Dauer: ".$build[$y][$to]['zeit']."<br>";
                          echo 
                  "<a href=\"index.php?do=new&was=".$y."\">Ausbauen auf Stufe ".$lv[$y]."</a>";
                          echo 
                  "<br><br>";
                      }

                  }
                  ?>
                  Zuletzt geändert von PHP-Nooob; 16.05.2009, 16:47.

                  Kommentar

                  Lädt...
                  X