gpt4 book ai didi

php - 使用 Twig 创建数组

转载 作者:可可西里 更新时间:2023-11-01 12:24:37 25 4
gpt4 key购买 nike

我在 PHP 中有这个:

$units = array();
foreach ($popPorts as $port) {
$units[$port->getFrameNo()][$port->getSlotNo()][$port->getPortNo()] = $port->getPortNo();
}

我怎样才能在 Twig 中实现同样的效果?

到目前为止我已经试过了:

{% 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

最佳答案

恐怕您无法在 Twig 中创建这样的数组。即使将新项目附加到数组也很复杂,因为您需要为新元素创建一个数组并将其与现有数组连接起来。示例:

{% set array = [] %}
{% for item in items %}
{% set array = array|merge([{ title: item.title, ... }]) %}
{% endfor %}

我知道这看起来很糟糕,但所有这些不便都是故意造成的。 Twig 旨在创建模板,因此可用于创建或处理信息的功能是有意限制的。这个想法是应该使用 PHP 完成繁重的数据处理。

关于php - 使用 Twig 创建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43094837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com