數組我有這樣的:創建PHP與枝條
$units = array();
foreach ($popPorts as $port) {
$units[$port->getFrameNo()][$port->getSlotNo()][$port->getPortNo()] = $port->getPortNo();
}
如何能夠做到在樹枝一樣的嗎?
到目前爲止,我已經試過這樣:
{% set frames = [] %}
{% for row in object.popPorts %}
{% set frames[row.frameNo][row.slotNo][row.portNo] = row.portNo %}
{% endfor %}
{{ dump(frames) }}
但後來我得到一個錯誤:
Unexpected token "punctuation" of value "[" ("end of statement block" expected).
輸出應該是這樣的:
array (size=3)
(frame) 1 =>
array (size=2)
(slot) 1 =>
array (size=4)
0 => (port) 26
1 => (port) 27
2 => (port) 28
3 => (port) 29
(slot) 5 =>
array (size=2)
0 => (port) 31
1 => (port) 34
(frame) 2 =>
array (size=1)
(slot) 3 =>
array (size=1)
0 => (port) 32
(frame) 3 =>
array (size=1)
(slot) 6 =>
array (size=1)
0 => (port) 33
你能提供一個你的$單位的例子嗎?因爲我可能是「行」沒有鑰匙命名爲「frameNo」 –
在樹枝做這可能會很煩人。您可以使用[attribute](http://twig.sensiolabs.org/doc/2.x/functions/attribute.html)將動態值用作關鍵字,但不確定它如何在嵌套結構中起作用。我認爲轉換類型是邏輯,應該在代碼中的Transformer/Converter類中完成,而不是在模板中完成。 – dbrumann
你不能在樹枝中做到這一點,你需要例如'merge()'。但儘管這是可能的,但會導致很多醜陋的代碼(您需要臨時變量來爲您的密鑰...)。所以,如果你可以在PHP中做到這一點,並將結果發送給樹枝,我會建議。 – jeroen