带有键的数组的 Twig for 循环

Posted

技术标签:

【中文标题】带有键的数组的 Twig for 循环【英文标题】:Twig for loop for arrays with keys 【发布时间】:2012-05-05 03:58:58 【问题描述】:

我使用 Twig,我有一个带有这样键的数组:

array[1] = "alpha"
array[2] = "bravo"
array[3] = "charlie"
array[8] = "delta"
array[9] = "echo"

我想在循环中获取密钥(1,2,3,8,9) 和内容(alpha, bravo, charlie, delta, echo) 以获取该数组的所有值。

我该如何解决这个问题?

【问题讨论】:

您是否尝试过搜索 php 循环?使用foreach 循环。 不是在 PHP 中,而是在模板文件中的 Twig 中! 很公平。您是否尝试搜索 TWIG 循环? twig.sensiolabs.org/doc/tags/for.html 【参考方案1】:

我找到了答案:

% for key,value in array_path %
    Key :  key 
    Value :  value 
% endfor %

【讨论】:

这里是官方文档的链接:twig.sensiolabs.org/doc/tags/…【参考方案2】:

在 SensioLab 页面的 for 标签上有这个例子:

<h1>Members</h1>
<ul>
    % for key, user in users %
        <li> key :  user.username|e </li>
    % endfor %
</ul>

http://twig.sensiolabs.org/doc/tags/for.html#iterating-over-keys

【讨论】:

这个例子没有遍历数组键,见上面的【参考方案3】:

这些是 Twig 框架中一维和二维数组的扩展操作(例如,排序、反向):

一维数组

没有键排序和反转

% for key, value in array_one_dimension %
    <div> key </div>
    <div> value </div>
% endfor %

键排序

% for key, value in array_one_dimension|keys|sort %
    <div> key </div>
    <div> value </div>
% endfor %

键排序和反转

% for key, value in array_one_dimension|keys|sort|reverse %
    <div> key </div>
    <div> value </div>
% endfor %

二维数组

没有键排序和反转

% for key_a, value_a in array_two_dimension %
    % for key_b, value_b in array_two_dimension[key_a] %
        <div> key_b </div>
        <div> value_b </div>
    % endfor %
% endfor %

外部数组的键排序

% for key_a, value_a in array_two_dimension|keys|sort %
    % for key_b, value_b in array_two_dimension[key_a] %
        <div> key_b </div>
        <div> value_b </div>
    % endfor %
% endfor %

外部和内部数组的键排序

% for key_a, value_a in array_two_dimension|keys|sort %
    % for key_b, value_b in array_two_dimension[key_a]|keys|sort %
        <div> key_b </div>
        <div> value_b </div>
    % endfor %
% endfor %

外部数组的键排序和内部数组的键排序和反转

% for key_a, value_a in array_two_dimension|keys|sort %
    % for key_b, value_b in array_two_dimension[key_a]|keys|sort|reverse %
        <div> key_b </div>
        <div> value_b </div>
    % endfor %
% endfor %

外部数组的键排序和反转以及内部数组的键排序

% for key_a, value_a in array_two_dimension|keys|sort|reverse %
    % for key_b, value_b in array_two_dimension[key_a]|keys|sort %
        <div> key_b </div>
        <div> value_b </div>
    % endfor %
% endfor %

外部和内部数组的键排序和反转

% for key_a, value_a in array_two_dimension|keys|sort|reverse %
    % for key_b, value_b in array_two_dimension[key_a]|keys|sort|reverse %
        <div> key_b </div>
        <div> value_b </div>
    % endfor %
% endfor %

【讨论】:

【参考方案4】:

我猜你想做“迭代键和值”

正如文档here 所说,只需在您想要的变量中添加“|keys”,它就会神奇地发生。

% for key, user in users %
    <li> key :  user.username|e </li>
% endfor %

在询问之前搜索永远不会有害:)

【讨论】:

您没有在答案中展示使用“|keys”的示例。 我给你 10 分,因为你有 308 分,但你回答“在询问之前搜索永远不会伤害”很糟糕,所以我把它拿出来

以上是关于带有键的数组的 Twig for 循环的主要内容,如果未能解决你的问题,请参考以下文章

将带有数字键的 JavaScript 对象转换为数组

带有 for 循环的日期数组

带有嵌套for循环的Javascript多维数组-无法正常工作

带有数组的for循环

为啥我的平台不绘制当使用带有数组列表的 for 循环(访问多个平台)时

带有 if 语句的循环的空数组