我有一个沿线的多维数组
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"
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
现在我做了一些循环,现在我已经可以访问日期了.
{% for sid, psuedos in alerts %}
{% for psuedo, flights in psuedos %}
{% for flight, dates in flights %}
{% endfor %}
{% endfor %}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
现在我正在转换一些普通的PHP代码,在这一点上,我会这样做
$firstDate = array_pop(array_keys($dates));
Run Code Online (Sandbox Code Playgroud)
有没有办法在Twig做这样的事情?我搜索过但似乎无法找到任何东西.
更新
这是我最近的努力,似乎无法让它切片最后一个数组元素
{% set firstDate = [dates|keys]|last|slice(1) %}
Run Code Online (Sandbox Code Playgroud)
没有一个Twig函数可以完全array_pop()执行(返回最后一个数组元素并同时缩短数组),但有一些方法可以单独执行它们.
鉴于:
{% set array = [1,2,3,4,5] %}
Run Code Online (Sandbox Code Playgroud)
返回:'12345'
要获取最后一个元素,请使用Twig的last过滤器.
{{ array|last }}
{# returns '5' #}
Run Code Online (Sandbox Code Playgroud)
返回:'5'
您可以使用slice过滤器删除最后一个元素,如下所示:slice(0,-1)
{% set array = array|slice(0,-1) %}
{# array = [1,2,3,4] #}
Run Code Online (Sandbox Code Playgroud)
返回:'1234'
......或者工艺without过滤器:
{% set arrayLast = array|last %}
{% set array = array|without(arrayLast) %}
{# array = [1,2,3,4] #}
Run Code Online (Sandbox Code Playgroud)
返回:'1234'