Ankündigung

Einklappen
Keine Ankündigung bisher.

arrayname auslesen

Einklappen

Neue Werbung 2019

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

  • benni33
    hat ein Thema erstellt arrayname auslesen.

    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?

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

    Einen Kommentar schreiben:


  • benni33
    antwortet
    ö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!! 

    Einen Kommentar schreiben:


  • David
    antwortet
    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)

    Einen Kommentar schreiben:


  • cycap
    antwortet
    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

    Einen Kommentar schreiben:


  • benni33
    antwortet
    wer?? ihr bringt mcih ganz durcheinander

    Einen Kommentar schreiben:


  • cycap
    antwortet
    ---- EDIT: Mist Erzählt ----

    Einen Kommentar schreiben:


  • benni33
    antwortet
    sry, ich seh aber keinen wesetnlichen unterschied im quelltext.

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • benni33
    antwortet
    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.

    Einen Kommentar schreiben:


  • David
    antwortet
    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";
    }

    Einen Kommentar schreiben:

Lädt...
X