2012-05-23 1 views
9

var_dump для моего массива $ STRs [$ ключ] [$ ID] дает следующий результат:Как получить значения из многомерного массива в 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" 
    } 
} 

На мой взгляд, я привязывания, чтобы получить все строки с одинаковым идентификатором $ от всех $ ключ. Что-то вроде этого:
1-
ouvrir 1
улан 2
2-
Fichier 2
улан 2

и т.д.

Я попытался это на мой взгляд веточку:

{% for key,val in strs['key']['id'] %} 
    {% if strs['key']['id'] is defined %} 
    {{ key }} - <br/>  
    {{ val }}  
    {% endif %} 
{% endfor %} 

Я получил (а) эту ошибку:
Ключ «key» f или массив с ключами «0, 1» не существует в ...
Что я делаю неправильно здесь? И как я могу получить результат, который я ищу?

ответ

10

Не ставьте эту логику в свои взгляды. Используйте свои виды только для отображения материала.
ли это в контроллере, а и передать результат на ваш взгляд:

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

Результатом будет массив, ключи которого будут идентификаторы, значения массивов строк, которые принадлежат одному и тому же ID.

Чтобы отобразить его:

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

Это именно то, что я имею в мой контроллер, чтобы получить массив $ результат в первую очередь. Я пытаюсь показать содержимое массива в моем представлении. – Wissem

+2

Я обновил свой ответ кодом для отображения содержимого массива. –

+0

Да, это весь контент массива. Но, я пытаюсь получить для каждого ключа $ его соответствующие strs [id]. Как и в примере в моем вопросе: [8259] => строка (8260) «ouvrir 1» и [8259] => string (8260) «lancer 2» имеют один и тот же идентификатор (8259), но для другого ключа (0 и 1). Теперь я хочу группировать и показывать эти два в каждом цикле. – Wissem

 Смежные вопросы

  • Нет связанных вопросов^_^