Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 带if条件的for循环_Php_Html_Twig - Fatal编程技术网

Php 带if条件的for循环

Php 带if条件的for循环,php,html,twig,Php,Html,Twig,我有不同的具有值的类别,我只想显示一次类别名称。我尝试过这种方式,但多次显示类别名称:- <th>Properties</th> <td> {% for sec in entity.appliedFeatures %} {{ sec.featuresCategory }} :- {{ sec.name }} % endfor %} </td> 这些是类别:-风格、户外特色、特殊房间 我只想显示这些类

我有不同的具有值的类别,我只想显示一次类别名称。我尝试过这种方式,但多次显示类别名称:-

<th>Properties</th>
<td>
    {% for sec in entity.appliedFeatures %}
        {{ sec.featuresCategory }} :-
        {{ sec.name }}
    % endfor %}
</td>
这些是类别:-风格、户外特色、特殊房间

我只想显示这些类别一次。我尝试了loop.index的if条件,但它只显示一个类别名称

我想要这样的结果:-

Properties  Style :- japanese, russian, american || Outdoor Features :- music system in park,Basketball Court || Special Rooms :- Camere Special ||

有解决办法吗

也许像这样的事情会奏效

{% set previous = false %}
{% for sec in entity.appliedFeatures %}
    {% if not previous or previous.featuresCategory != sec.featuresCategory %}
        {{ sec.featuresCategory }} :-
    {% endif %}
    {{ sec.name }}
    {% set previous = sec %}
{% endfor %}
Twig中没有用于获取上一个循环项的内置方法,因此,在将数据结构传递给Twig以呈现模板之前,在不改变数据结构的情况下,这可能是最好的方法


它可能需要一些调整,以使其完全符合您的要求。

谢谢您的回答,但是!上次显示意外字符“!”?哎呀!我已经更新了我的答案,看看现在是否有效:),我已经有一段时间没有使用Twig了!嗯,在查找了更多的细枝语法之后,对它进行了更多的编辑,希望这就是现在!你的第一个答案是对的。只有第一个类别名称未出现:-{%set previous=false%}{%for sec in entity.appliedFeatures%}{%if previous and previous.FeaturesTegory!=sec.FeaturesTegory%}{{sec.FeaturesTegory}:-{%endif%}{sec name}{%set previous=sec%}
{%endfor%}而reuslt则是:-日俄美户外特色:-公园篮球场特别房间的音乐系统:-Camere特别效果第一类风格不会出现。你能看到这个吗?确保它是
如果不是先前的
,然后是
其他条件。如果previous为false,则必须打印出来(这是循环的第一次迭代)。
{% set previous = false %}
{% for sec in entity.appliedFeatures %}
    {% if not previous or previous.featuresCategory != sec.featuresCategory %}
        {{ sec.featuresCategory }} :-
    {% endif %}
    {{ sec.name }}
    {% set previous = sec %}
{% endfor %}