Ankündigung

Einklappen
Keine Ankündigung bisher.

arrayname auslesen

Einklappen

Neue Werbung 2019

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

  • arrayname auslesen

    Hallo Leute. ich habe hier ein kleines problem. und zwar habe ich folgendes objekt aus einer xml geparst:
    Code:
    config Object
    (
        [worlds] => SimpleXMLElement Object
            (
                [de] => Array
                    (
                        [0] => 4
                        [1] => 5
                        [2] => 6
                        [3] => 7
                        [4] => 8
                        [5] => 9
                        [6] => 10
                        [7] => 11
                        [8] => 12
                        [9] => 13
                        [10] => 14
                        [11] => 15
                        [12] => 16
                        [13] => 17
                        [14] => 18
                        [15] => 19
                        [16] => 20
                        [17] => 21
                        [18] => 22
                        [19] => 23
                        [20] => 24
                        [21] => 25
                        [22] => 26
                    )
    
                [ch] => Array
                    (
                        [0] => >1
                        [1] => >2
                    )
    
            )
    
        [basedconf] => SimpleXMLElement Object
            (
                [de] => Array
                    (
                        [0] => 1
                        [1] => 3
                        [2] => 4
                        [3] => 5
                        [4] => 6
                    )
    
                [ch] => 1
            )
    )
    Nun muss ich dieses array auslesen und einige daten erhalten. das wollte ich mit foreach machen. klappt soweit ganz gut. allerdings komme ich nicht an das array [de] ran.
    Mein Problem ist, ich brauch de als String. daher hatte ich mir zuerst die idee es einfach in Anfürungszeichen zu setzen. doch egal ob mit oder anführungszeichen, jedes mal wenn ich es ausgebe, steht da entweder nur Array oder nix.
    ich will aber, dass er mir de ausliest.
    das gleich will ich auch mit ch machen.
    Wie komme ich da am besten ran?


  • #2
    PHP-Code:
    <?php
    Class config {} // dummy
    $c = new config;
    $c->worlds = New SimpleXMLElement('<w><de>4</de><de>5</de><de>6</de><de>7</de><de>8</de>
     <de>9</de><de>10</de><ch>1</ch><ch>2</ch></w>'
    );
    $c->basedconf = New SimpleXMLElement('<w><de>1</de><de>2</de><de>3</de><de>4</de><de>5</de>
     <ch>1</ch></w>'
    );
    // print_r($config);
    foreach($c->worlds as $n=>$v)
    {
      echo 
    $n '=' $v " \n";
    }

    Kommentar


    • #3
      so hatte ichs am anfang auch. Das hat allerdings nicht geklappt:
      hier zum vergleich der Code:

      PHP-Code:
      class config{

              
      //Construct
              
      public function __construct(){
                    
      //Main.xml laden:
                    
      if(!@$stream=simplexml_load_file("./main.xml")){
                                                                             die(
      "Unable to load Main config: config.class.php");
                    }
                                  
      $this->all=$stream;
                                  
      print_r($this);
            }
      }

      $config=new config;
      foreach(
      $config->all->worlds as $n=>$v)
      { echo 
      $n.'='.$v."<br>";}
      ?> 
      Und die Ausgabe :
      Code:
      config Object
      (
          [all] => SimpleXMLElement Object
              (
                  [worlds] => SimpleXMLElement Object
                      (
                          [de] => Array
                              (
                                  [0] => 4
                                  [1] => 5
                                  [2] => 6
                                  [3] => 7
                                  [4] => 8
                                  [5] => 9
                                  [6] => 10
                                  [7] => 11
                                  [8] => 12
                                  [9] => 13
                                  [10] => 14
                                  [11] => 15
                                  [12] => 16
                                  [13] => 17
                                  [14] => 18
                                  [15] => 19
                                  [16] => 20
                                  [17] => 21
                                  [18] => 22
                                  [19] => 23
                                  [20] => 24
                                  [21] => 25
                                  [22] => 26
                              )
      
                          [ch] => Array
                              (
                                  [0] => 1
                                  [1] => 2
                              )
      
                      )
      
                  [basedconf] => SimpleXMLElement Object
                      (
                          [de] => Array
                              (
                                  [0] => 1
                                  [1] => 3
                                  [2] => 4
                                  [3] => 5
                                  [4] => 6
                              )
      
                          [ch] => 1
                      )
      
                  [update] => SimpleXMLElement Object
                      (
                          [disable_update] => false
                          [use_compressed_files] => true
                      )
      
                  [settings] => SimpleXMLElement Object
                      (
                          [spielerakte] => SimpleXMLElement Object
                              (
                                  [conquers_per_site] => 20
                              )
      
                      )
      
              )
      
      )
      worlds=
      Wie man sieht, er hört irgendwie auf. er macht nix mehr.
      Außerdem gibt er das "falsche aus" er soll ja de=1 ... ausgeben und nicht worlds=Array oder was er auch immer ausgeben wollte.

      Kommentar


      • #4
        Mein Skript gibt
        Code:
        de=4 
        de=5 
        de=6 
        de=7 
        de=8 
        de=9 
        de=10 
        ch=1 
        ch=2
        aus.

        Kommentar


        • #5
          sry, ich seh aber keinen wesetnlichen unterschied im quelltext.

          Kommentar


          • #6
            ---- EDIT: Mist Erzählt ----

            Kommentar


            • #7
              wer?? ihr bringt mcih ganz durcheinander

              Kommentar


              • #8
                Ich hab grad Mist erzählt weil ich nicht drauf geachtet hab das du im Konstruktor arbeitest... setz in deinem Code doch mal print_r oder noch besser var_dump innerhalb der foreach schleife ein, vielleicht kommst du dem Fehler dann auf die Spur

                Kommentar


                • #9
                  Also ich sehe da einen Unterschied.
                  Zitat von David
                  foreach($c->worlds as $n=>$v)
                  Zitat von benni33 Beitrag anzeigen
                  foreach($config->all->worlds as $n=>$v)

                  Kommentar


                  • #10
                    öhem
                    Deine initialisierung:
                    PHP-Code:
                    $c->worlds = New SimpleXMLElement('<w><de>4</de><de>5</de><de>6</de><de>7</de><de>8</de> 
                     <de>9</de><de>10</de><ch>1</ch><ch>2</ch></w>'
                    ); 
                    $c->basedconf = New SimpleXMLElement('<w><de>1</de><de>2</de><de>3</de><de>4</de><de>5</de> 
                     <ch>1</ch></w>'
                    ); 
                    Meine initialisierung:
                    PHP-Code:
                    if(!@$stream=simplexml_load_file("./main.xml")){
                                                                                           die(
                    "Unable to load Main config: config.class.php");
                                  }
                                                
                    $this->all=$stream;// WICHTIG!! 

                    Kommentar


                    • #11
                      Oh, das fehlt aber im ersten Beitrag.
                      PHP-Code:
                      foreach($config->all->worlds[0] as $n=>$v)
                      {
                        echo 
                      $n.'='.$v."<br />\n";

                      Kommentar

                      Lädt...
                      X