PHP массив в ветке - PullRequest
       15

PHP массив в ветке

0 голосов
/ 28 апреля 2018

У меня есть этот код в php, я преобразовал его в веточку, но не получил тот же результат.

 <?php for($j=0;$j<sizeof($products[$category]);) { ?>
   <div class="wrapper">
       <?php for($f=0;$f<$rows;$f++,$j++) { 
                if($j<sizeof($products[$category])) { ?>
                    <?php if($products[$category][$j]) { ?>

                    <?php } 
                     if(sizeof($products[$category])<(4*$rows)-1){
                       if(((sizeof($products[$category])-($j)) + 1)%3 == 0){
                              $cnt = 1;
                                }
                                if($cnt == 1){
                                        $f++;
                                }
                            }
                        ?>
                        <?php } ?>
                        <?php } ?>
                    </div>

в файле ветки:

{% for j in 0..(products[category]|length)-1 %}
    <div class="wrapper">
          {% for f in 0..rows-1 %}
                {% if j < products[category]|length %}
                    {% if products[category][j] %}

                    {% endif %} 
                    {% if products[category]|length < ((4*rows)-1) %} 
                        {% if(((products[category]|length)-(j)) + 1)%rows == 0 %}
                                    {% set cnt = 1 %}
                        {% endif %}
                        {% if cnt == 1 %}
                                {% set f = f + 1 %}
                        {% endif %}
                    {% endif %}
                 {% endif %}
            {% set j = j + 1 %}
           {% endfor %}  

    </div>

Как я могу реализовать $j++ с итерацией цикла?

Пожалуйста, помогите.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 02 мая 2018

Написание кода ниже на основе желаемого выхода.

Мне нравится - Всего строк 2, затем 6 предметов

1  3  5
2  4  6

Строк 3, а предметов 8, тогда

1  4  7
2  5  8
3  6

При условии следования за веткой - индексный массив на основе нуля

{% set TOTALITEMS = (products[category]|length) %}
{% set TOTALROWS = 2 %}
{% set ITEMSPERROW = TOTALITEMS / TOTALROWS %} <!-- make sure you get integer number only, if not then make it by helper functions of php / twig -->

{% for rowIndex in 0 .. TOTALROWS - 1 %}
  <!-- start a div which will contain a row -->

    {% for columnIndex in 0 .. ITEMSPERROW - 1 %}

        <!-- here you have a item ready to dump in html -->
        {%  products[category][ (columnIndex * TOTALROWS) + rowIndex ]  %}

    {% endfor %} <!-- end of loop for columnIndex ...-->

  <!-- end a div which contained a row -->
{% endfor %} <!-- end of loop for rowIndex ...-->
0 голосов
/ 28 апреля 2018

Попробуйте, это будет работать для вас

<div class="wrapper">
{% set j = 0 %}
{% for f in 0..rows-1 %}
    {% if j < products[category]|length %}
        {% if products[category][j] %}

        {% endif %} 
        {% if products[category]|length < ((4*rows)-1) %}
            {% if(((products[category]|length)-(j)) + 1)%rows == 0 %}
                {% set cnt = 1 %}
            {% endif %}
            {% if cnt == 1 %}
                {% set f = f + 1 %}
            {% endif %}
        {% endif %}
    {% endif %} 
    {% if f < rows %}
        {% set j = j + 1 %}
    {% endif %}
{% endfor %}
</div>
...