2017-09-25 4 views
-1

Ich versuche herauszufinden, warum ich keine Daten zurückgebe, wenn ich json_decode benutze. Ich versuche, Werte zu erhalten, die in einer gültigen JSON-Datei sind (ja, ich habe es getestet). wenn ich versuche, und Verwendung:php json_decode gibt keine Ergebnisse zurück

foreach($json['designs']['filters'] as $filters) { 
    echo $filters['filterTypeName']; 
} 

i die Werte kehre zurück ... das ist toll, aber ich versuche, auf die nächste Ebene der JSON-Datei runter nur die Werte für jedes Feld unter „Werte ziehen ". hier ist die JSON-Datei ergibt sich aus file_get_contents('url'):

{"designs": { 
    "filters" : 
     [ 
      { 
       "filterTypeName":"Year", 
       "filterProperty":"year", 
       "values": 
        [ 
         { 
          "name":"2018", 
          "value":"2018", 
          "sortvalue":"1" 
         }, 
         { 
          "name":"2017", 
          "value":"2017", 
          "sortvalue":"2" 
         }, (etc.) 

        ] 
      }, 
      { 
       "filterTypeName":"Division", 
       "filterProperty":"division", 
       "values": 
        [ 
         { 
          "name":"Resort-Apparel", 
          "value":"Resort-Apparel", 
          "sortvalue":"1" 
         }, 
         { 
          "name":"College-Apparel", 
          "value":"College-Apparel", 
          "sortvalue":"2" 
         }, (etc.) 

        ] 
      }, (etc.) 

im Wesentlichen, ich habe eine Auswahl von Optionen auf meine Form, die oben gegen die Werte Überprüfung aufgeführten Designs zurückzukehren, die den Kriterien entsprechen.

Wie suche ich spezifisch nach allen Jahren in einer ausgewählten Gruppe, dann alle Abteilungen in einer anderen ausgewählten Gruppe und so weiter?

danke für alle Ihre Hilfe !!

+0

Sie brauchen nicht nur foreach ($ filter ['values'] als $ value) echo $ value-> name. $ Value-> wert. $ Value-> sortvalue; 'in Ihrer foreach ?? – jh1711

+0

Der Titel stimmt nicht mit der Frage überein. –

Antwort

0

mit $json->designs-> filters Versuchen für Filter statt $json['designs']['filters']

0

Zugriff Wie die anderen gesagt haben, gibt json_decode ein Objekt, es sei denn wahr als die zweiten Parameter angegeben wird, so dass Ihre Optionen sind entweder:

  1. Verwenden $json->designs->filters
  2. oder json_decode($json, true)
0

verwenden verwendet i foreach($json['designs']['filters'][0]['values'] as $name) Ich habe vergessen, die Nummer des Arrays anzugeben, auf das ich zugreifen wollte.

Verwandte Themen