首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >小枝- array_pop?

小枝- array_pop?
EN

Stack Overflow用户
提问于 2015-02-27 14:12:50
回答 3查看 11.1K关注 0票数 7

我有一个多维数组,沿着

代码语言:javascript
复制
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" 
                } 
            } 
        } 
    } 
}

现在,我已经做了一些循环,我现在到了点,我可以访问日期。

代码语言:javascript
复制
{% for sid, psuedos in alerts %}
    {% for psuedo, flights in psuedos %}
        {% for flight, dates in flights %}

        {% endfor %}
    {% endfor %}
{% endfor %}

现在,我正在转换一些正常的PHP代码,在这一点上,我将

代码语言:javascript
复制
$firstDate = array_pop(array_keys($dates));

有办法在Twig做这样的事吗?我到处找过,但似乎什么也找不到。

更新

这是我最近的努力,但似乎无法将最后一个数组元素切片

代码语言:javascript
复制
{% set firstDate = [dates|keys]|last|slice(1) %}
EN

回答 3

Stack Overflow用户

发布于 2017-01-06 22:59:06

没有一个Twig函数能够完成array_pop()所做的工作(返回最后一个数组元素,同时缩短数组),但是有一些方法可以分别完成它们。

给予:

代码语言:javascript
复制
{% set array = [1,2,3,4,5] %}

要获得最后一个元素,请使用Twig的 filter

代码语言:javascript
复制
{{ array|last }}

{# returns '5' #}

只能使用 filter删除最后一个元素,如下所示:slice(0,-1)

代码语言:javascript
复制
{% set array = array|slice(0,-1) %}

{# array = [1,2,3,4] #}

..。或者是手工艺 filter

代码语言:javascript
复制
{% set arrayLast = array|last %}

{% set array = array|without(arrayLast) %}

{# array = [1,2,3,4] #}
票数 21
EN

Stack Overflow用户

发布于 2016-04-03 18:58:24

pop最后元素

代码语言:javascript
复制
{% 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 %}

弹出第一个元素

代码语言:javascript
复制
{% 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 %}
票数 1
EN

Stack Overflow用户

发布于 2015-08-24 15:00:26

作为快速检查,你有没有试过slice(-1)

传递一个负数作为第一个参数应该从数组的末尾开始,并运行许多返回的值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28767095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档