2012-05-23 15 views
9

A Var_dump für meine Array $ strs [$ key] [$ id], um das folgende Ergebnis liefert:Wie erhält man Werte aus einem mehrdimensionalen Array in Twig?

array(2) { 
    [0]=> array(4) { 
     [8259]=> string(8260) "ouvrir 1" 
     [8260]=> string(8261) "fichier 2" 
     [8261]=> string(8262) "quitter 1" 
     [8262]=> string(8263) "lire 2" 
    } 
    [1]=> array(4) { 
     [8259]=> string(8260) "lancer 2" 
     [8260]=> string(8261) "dossier 1" 
     [8261]=> string(8262) "exit 1" 
     [8262]=> string(8263) "lire 2" 
    } 
} 

Aus meiner Sicht ich binden von allen mit der gleichen $ id alle Fäden erhalten die $ Schlüssel. Etwas wie folgt aus:
1-
ouvrir 1
lancer 2
2-
fichier 2
lancer 2

etc

ich dies in meinem Zweig Ansicht versucht haben:

Ich habe diesen Fehler:
Schlüssel "Schlüssel" f oder Array mit Tasten "0, 1" existiert nicht in ...
Was mache ich hier falsch? Und wie bekomme ich das Ergebnis, nach dem ich suche?

Antwort

10

Fügen Sie diese Logik nicht in Ihre Ansichten ein. Verwenden Sie Ihre Ansichten nur, um Zeug anzuzeigen.
Tun Sie es in Ihrem Controller statt und das Ergebnis Ihrer Ansicht nach passieren:

$result = array(); 
foreach ($arrays as $array) { 
    foreach ($array as $key => $value) { 
    $result[$key][] = $value; 
    } 
} 

Das Ergebnis wird ein Array, dessen Schlüssel werden die IDs sein, die Werte-Arrays von Strings sein, die auf die gleiche ID gehören.

es anzuzeigen:

{% for id, stringsById in results %} 
    {{ id }}- <br /> 
    {% for string in stringsById %} 
    {{ string }} <br /> 
    {% endfor %} 
{% endfor %} 
+0

Das ist genau das, was ich in meinem Controller habe das $ result Array in erster Linie zu bekommen. Ich versuche hier den Inhalt des Arrays in meiner Ansicht anzuzeigen. – Wissem

+2

Ich habe meine Antwort mit dem Code für die Anzeige des Inhalts des Arrays aktualisiert. –

+0

Ja, das ist der gesamte Inhalt des Arrays. Aber ich versuche für jeden $ key seine entsprechende strs [id] zu bekommen. Wie im Beispiel in meiner Frage: [8259] => string (8260) "ouvrir 1" und [8259] => string (8260) "lancer 2" teilen sich dieselbe ID (8259) aber für einen anderen Schlüssel (0 und 1). Nun, was ich will ist, diese beiden auf jeder Schleife zu gruppieren und zu zeigen. – Wissem

Verwandte Themen