我有一个沿
行的多维数组array(2) {
[11]=> array(1) {
["L2J"]=> array(1) {
["VS7"]=> array(2) {
["26 Feb 2015 12:00"]=> array(2) {
["C"]=> string(1) "9"
["D"]=> string(1) "9"
}
["26 Feb 2015 13:00"]=> array(2) {
["C"]=> string(1) "9"
["D"]=> string(1) "6"
}
}
}
}
}
现在我做了一些循环,现在我已经可以访问日期。
{% for sid, psuedos in alerts %}
{% for psuedo, flights in psuedos %}
{% for flight, dates in flights %}
{% endfor %}
{% endfor %}
{% endfor %}
现在我正在转换一些普通的PHP代码,此时我会做
$firstDate = array_pop(array_keys($dates));
有没有办法在Twig做这样的事情?我搜索过但似乎找不到任何东西。
更新
这是我最近的努力,似乎无法通过
来切割最后一个数组元素{% set firstDate = [dates|keys]|last|slice(1) %}
答案 0 :(得分:6)
没有一个Twig函数可以完全执行array_pop()
所做的事情(返回最后一个数组元素和同时缩短数组),但有办法做他们是分开的。
假设:
{% set array = [1,2,3,4,5] %}
要获取最后一个元素,请使用Twig的last
filter。
{{ array|last }}
{# returns '5' #}
您只能删除slice
filter这样的最后一个元素:slice(0,-1)
{% set array = array|slice(0,-1) %}
{# array = [1,2,3,4] #}
...或工艺without
filter:
{% set arrayLast = array|last %}
{% set array = array|without(arrayLast) %}
{# array = [1,2,3,4] #}
答案 1 :(得分:1)
弹出最后一个元素
{% set array = [1,2,3] %}
{% set value = array|last %}
{{ value }} {# return 3 #}
{% set array = array|slice(start, length - 1) %}
{% for value in array %}
{{ value }} {# return 1,2 #}
{% endfor %}
弹出第一个元素
{% set array = [1,2,3] %}
{% set value = array|first %}
{{ value }} {# return 1 #}
{% set array = array|slice(start + 1, length) %}
{% for value in array %}
{{ value }} {# return 2,3 #}
{% endfor %}
答案 2 :(得分:0)
快速检查一下,您是否尝试过slice(-1)
?
传递一个负数作为第一个参数应该从数组的末尾开始,然后再运行那么多。