Ankündigung

Einklappen
Keine Ankündigung bisher.

Array

Einklappen

Neue Werbung 2019

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

  • Array

    Hallo ich erhalte durch eine API-Schnittstelle folgendes Array:

    Code:
    [
    {
    "results": [
    {
    
    "signal_id": 11325334638,
    
    "dec_lat": 52,
    
    "dec_long": 8.
    "
    },
    {
    
    "signal_id": 11325163695,
    
    "dec_lat": 52,
    
    "dec_long": 8
    
    }
    
    }]

    Ich benötige die Daten "dec_lat" und "dec_long". Wie kann ich diese in Form einer PHP-Variable verarbeiten, bzw. wie kann ich aus den beiden Werten ein PHP echo erstellen?


  • #2
    Zitat von fynn1307 Beitrag anzeigen
    Hallo ich erhalte durch eine API-Schnittstelle folgendes Array: […]
    Das sieht mir nach JSON aus, json_decode() sollte helfen.

    Kommentar


    • #3
      So wie gezeigt ist das JSON aus #1 invalid. Ein JSON Formatter & Valiador zeigt dir die Fehler.
      Wenn du das Resultat deiner API-Anfrage auf das wesentliche kürzt ist erstmal ok. Du solltest dabei jedoch darauf achten, das dein Resultat valide ist damit dein Problem auch von anderen nachvollziehbar ist.
      PHP-Klassen auf github

      Kommentar


      • #4
        Wie passe ich diesen Code-Baustein an das Array an?

        PHP-Code:
        foreach ($data as $emp) {
          echo 
        $emp['results']['dec_lat']."<br/>";

        der Code-Baustein funktioniert nicht.

        Kommentar


        • #5
          Zeige bitte ein nachvollziehbares Beispiel. Was steht in $data?

          Kommentar


          • #6
            Code:
            $readjson = file_get_contents('employees.json') ;
            
            
            $data = json_decode($readjson, true);

            Kommentar


            • #7
              Damit wird auch kein Beispiel nachvollziehbar da wir den Inhalt deiner 'employees.json' nicht kennen und dein #1 gezeigtes JSON verstümmelt ist !
              PHP-Klassen auf github

              Kommentar


              • #8
                Code:
                [
                   {
                      "results":[
                         {
                            "signal_id":11328555834,
                            "dec_lat":52,
                            "dec_long":8
                
                
                },
                         {
                            "signal_id":11328549683,
                            "dec_lat":53,
                            "dec_long":9
                
                
                },
                         {
                            "signal_id":11328549682,
                            "dec_lat":12,
                            "dec_long":6
                
                
                }
                
                
                ]
                
                
                }
                
                ]

                Kommentar


                • #9
                  Geht doch ein valides JSON zu zeigen. Du hast oberhalb von 'results' noch eine Array-Ebene. Mit var_export($data) kommt dann so etwas (gekürzt!):
                  PHP-Code:
                  array (
                    
                  => 
                    array (
                      
                  'results' => 
                      array (
                        
                  => 
                        array (
                          
                  'signal_id' => 11328555834,
                          
                  'dec_lat' => 52,
                          
                  'dec_long' => 8,
                        ), 
                  Dein foreach kannst du dann z.B. so machen:
                  PHP-Code:
                  foreach($data[0]['results'] as $result){
                    echo 
                  $result['dec_lat']."<br/>";

                  PHP-Klassen auf github

                  Kommentar


                  • #10
                    Vielen Dank, der Code funktioniert! Eine Frage noch, ist es auch möglich, nur den ersten Eintrag für "dec_lat" anzuzeigen?

                    Kommentar


                    • #11
                      Ja, das geht. Versuche das mal herauszufinden. Mit Array-Grundlagen sollte man das hinbekommen.
                      Competence-Center -> Enjoy the Informatrix
                      PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                      Kommentar


                      • #12
                        Okay, bitte schreib es hier, wenn du eine Lösung, gefunden hast.

                        Kommentar


                        • #13
                          Zitat von fynn1307 Beitrag anzeigen
                          Okay, bitte schreib es hier, wenn du eine Lösung, gefunden hast.
                          *Du* sollst die Lösung selbst finden und nicht nur fertigen Code kopieren (alle die hier im Thread bereits gepostet haben wissen wie sowas geht) - sonst lernst du garnichts. Und mit Arrays zu hantieren gehört zu den Grundlagen ohne die du nie auf einen grünen Zweig kommst.

                          Kommentar


                          • #14
                            Könntet ihr mir wenigstens den entscheidenden Stichpunkt geben, nachdem ich suchen muss?

                            Kommentar


                            • #15
                              Zitat von fynn1307 Beitrag anzeigen
                              Könntet ihr mir wenigstens den entscheidenden Stichpunkt geben, nachdem ich suchen muss?
                              Mit Array-Grundlagen sollte man das hinbekommen.
                              Wenn Du weißt, was Arrays sind und wie man sie verwendet, weißt Du auch, wie man an einzelne Elemente rankommt und damit auch ans erste.
                              Array ist das Stichwort.
                              Competence-Center -> Enjoy the Informatrix
                              PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                              Kommentar

                              Lädt...
                              X