2016-10-18 3 views
1

Ich habe die folgenden json_decode Daten, die so etwas wie diese:Zweig Schleife durch Array

Array 
( 
[0] => Array ( 
    [id] => 218 
    [startTime] => 1478363400000 
    [EndTime] => 1478367000000 
    [c] => Array ( 
     [id] => 1 
     [code] => A 
     [name] => Name 
     [postalCode] => 7TF 
     [contact] => 1111 242 3144 
     [email] => 
     [website] =>/
     [fax] => 
     [address] => Thisistheaddress 
     [latitude] => 53.80729675111 
     [longitude] => -1.5190633535385 
     [status] => ONLINE 
    ) 
    [service] => Array ( 
     [id] => 1 
     [code] => 100 
     [description] => GENERAL 
    ) 
) 
[1] => Array ([id] => 237 [startTime] => 1478593800000 [EndTime] => 1478597400000 [c] => Array ([id] => 1 [code] => A [name] => Name [postalCode] => 7TF [contact] => 1111 242 3144 [email] => [website] =>/[fax] => [address] => Thisistheaddress [latitude] => 53.80729675111 [longitude] => -1.5190633535385 [status] => ONLINE) [service] => Array ([id] => 1 [code] => 100 [description] => GENERAL)) 
[2] => Array ([id] => 199 [StartTime] => 1478187000000 [EndTime] => 1478190600000 [c] => Array ([id] => 1 [code] => A [name] => Name [postalCode] => 7TF [contact] => 1111 242 3144 [email] => [website] =>/[fax] => [address] => Thisistheaddress [latitude] => 53.80729675111 [longitude] => -1.5190633535385 [status] => ONLINE) [service] => Array ([id] => 1 [code] => 100 [description] => GENERAL)) 
) 

Meine Frage ist, wie iterieren ich dies so konnte ich die [Startzeit], [Name] und [Adresse] im Zweig. Ich habe versucht, die folgenden:

{% for key,a in TimeInfo|keys %} 
    Key : {{ key }} 
{% endfor %} 

Das Ergebnis oben nur mir gibt einen Schlüssel, ich habe auch versucht, die folgenden:

{% for a in TimeInfo %} 
    {{ a.name }} 
{% endfor %} 

Das obige Ergebnis ein Fehler ist. Schätzen Sie die Hilfe :)

+1

Sind Sie sicher, dass JSON korrekt ist? Sie haben keine Kommas oder Anführungszeichen um Zeichenfolge. Es scheint nicht korrekt zu sein. –

+0

Können Sie Ihrer Frage ein gültiges JSON- oder PHP-Array hinzufügen? Der, den du setzt, ist nicht korrekt. (fehlende comas, quotes ...) – COil

+0

Was war der Fehler der zweiten Schleife, das sollte funktionieren – Chausser

Antwort

0

Ihr zweite Schleife Versuch war in der Nähe, aber der Schlüssel name doesnt besteht auf dem ersten Array-Schlüssel. id, startTime, EndTime, c, service. Der Schlüssel name scheint unter c geschachtelt zu sein. Sie sollten also darauf zugreifen können:

{% for a in TimeInfo %} 
    The start time is: {{ a.startTime }} 
    The Name is: {{ a.c.name }} {# notice we access "c" then "name" #} 
{% endfor %} 
+0

Danke für diesen Sir, das hilft mir sehr: D – momori14

0

Stellen Sie sicher, dass Sie die Funktion json_decode verwenden, bevor Sie Ihr TimeInfo-Array an die Zweigvorlage übergeben. Sie können es als ein einfaches mehrdimensionales Array durchlaufen. Kleiner Trick mit startTime/StartTime wird Ihnen helfen, einen Fehler im Zusammenhang mit dem ersten Großbuchstaben im Schlüssel des StartTime-Elements Ihres Datenarrays zu vermeiden.

<ul> 
    {% for array in TimeInfo %} 
     <li> 
      <ul> 
       <li>Start Time: {{ attribute(array, 'startTime') ?: attribute(array, 'StartTime') }}</li> 
       <li>Name: {{ attribute(array, 'c').name }}</li> 
       <li>Address: {{ attribute(array, 'c').address }}</li>  
      </ul> 
     </li> 
    {% endfor %} 
</ul>