Ankündigung

Einklappen
Keine Ankündigung bisher.

stdClass Object Array Problem

Einklappen

Neue Werbung 2019

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

  • stdClass Object Array Problem

    Hallo!


    Ich hab ein Thema mit einem mehrdimensionale assoziative Array.

    Das Array schaut so aus!

    Code:
    stdClass Object
    ([ListLinearContentResponse] => stdClass Object
            (
                [TransactionStatus] => stdClass Object
                    (
                        [StatusCode] => OK
                        [TransactionId] => f524c672-be40-4d63-b514-491e10795b62
                    )
    
                [LinearContentList] => stdClass Object
                    (
                        [Content] => Array
                            (
                                [0] => stdClass Object
                                    (
                                        [Id] => 101
                                        [Name] => 101
                                        [ContentRef] => f30aca5f-ec54-45a9-abea-60907e9e40c1
                                    )
    
                                [1] => stdClass Object
                                    (
                                        [Id] => 103
                                        [Name] => 103
                                        [ContentRef] => 2750f4c4-528c-472b-a872-96fbdb281745
                                    )
    
                                [2] => stdClass Object
                                    (
                                        [Id] => 111
                                        [Name] => 111
                                        [ContentRef] => b2b9a104-f58b-43ec-a73b-5619d64d4cd9
                                    )
    
                                [3] => stdClass Object
                                    (
                                        [Id] => 112
                                        [Name] => 112
                                        [ContentRef] => 01d3c73f-c7da-4df7-bbae-30b1fb06b402
                                    )
    
                            )
    
                    )
    
            )
    
    )
    Ich muss die for Schleifen so veraschachteln das ich die Id und Name bekomme um sie dann z.B. in eine Datenbank zu schreiben.

    In der Regel ist es ja nicht das Problem einen Array durchzulaufen und damit zu arbeiten, aber bei diesem hier stehe ich etwas an. Vielleicht hat jemand einen Tip wie ich das angehen kann?

    Danke!

    Gruß

  • #2
    So irgendwie musst du iterieren .. hier getippt:
    PHP-Code:
    foreach (ListLinearContentResponse->LinearContentList->Content as $obj ) {
        echo 
    $obj->ID;
        echo 
    $obj->Name;

    The string "()()" is not palindrom but the String "())(" is.

    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      Wenn dir die Schreibweise zu undurchsichtig ist, hast du auch die Möglichkeit ein Objekt in ein mehrdimensionales Array zu überführen.
      PHP-Code:
        $arrayFoo = (array)$objectFoo

      Kommentar


      • #4
        Ich frage mich wo der Sinn all dieser stdClassObject liegt.
        mölicherweise kommst Du mit hausls Antwort nicht so gut zurecht, weil dir das oberste Object fehlt, also:
        stdClassObct->ListLinearContentResponse etc pp.

        Kommentar


        • #5
          Danke euch!

          Ich weiß zwar nicht ob es sauber ist, aber mit vier foreach komme ich zu meinem Ergebniss!

          Code:
          foreach($response AS $test => $test1) {
            foreach($test1 AS $test2) {
              foreach($test2 AS $test3) {
                foreach($test3 AS $test4) {
          
                  echo "<br>";
                  echo $test4->Id;
                  echo "<br>";
                  echo $test4->Name;
          
                }
              }
            }
          }
          Hab nur ein PHP-Warning in der Zeile: foreach($test3 AS $test4) {
          Aber das debugge ich auch noch, fakt ist, ich meinen Result den ich brauche. Wahnsinn, wenn ich daran denke wie lange ich dafür gebraucht habe.

          Kommentar


          • #6
            Das dein äußeres Objekt $response heißt wussten wir nicht, und du das ergänzen würdest, hätte ich vorausgesetzt.

            Dann so:
            PHP-Code:
            foreach ( $response->ListLinearContentResponse->LinearContentList->Content as $obj ) {
                echo 
            $obj->ID   "<br>\n";
                echo 
            $obj->Name "<br>\n";

            The string "()()" is not palindrom but the String "())(" is.

            Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
            PHP.de Wissenssammlung | Kein Support per PN

            Kommentar


            • #7
              Zitat von hausl Beitrag anzeigen
              PHP-Code:
              foreach ( $response->ListLinearContentResponse->LinearContentList->Content as $obj ) {
              echo 
              $obj->ID "<br>\n";
              echo 
              $obj->Name "<br>\n";

              Läuft perfekt so! VIELEN Dank!

              Kommentar


              • #8
                lapachon : Dein "Array" ist nicht etwa das Resultat aus einem json_decode() ?

                protestix : (array) macht leider nur die oberste Ebene zum Array.
                PHP-Code:
                $array json_decode(json_encode($object), true); 

                Kommentar

                Lädt...
                X