Php вложенный для цикла - PullRequest
       3

Php вложенный для цикла

0 голосов
/ 20 февраля 2012

У меня есть массив в php, и я хочу напечатать элементы массива, по 15, из (n-15). Например, если у меня есть 100 элементов в массиве, я хочу напечатать его 85-100,70-84,55-70, и т. Д.,

Я пробовал цикл

 for( $j = sizeof($fields)-16; $j < sizeof($fields); )  {
 for ( $i = $j ; $i < $i+16 ; $i++  ) {
 echo $fields[$i];
 echo "<br>";
 }
 $j=$j-16;
 }

но это печатает только первую итерацию, то есть 85-100, и входит в бесконечный цикл.

Где я иду не так? Помогите!

Ответы [ 3 ]

2 голосов
/ 20 февраля 2012
foreach (array_reverse(array_chunk($fields, 15)) as $chunk) {
  foreach ($chunk as $field) {
    echo $field . '<br />';
  }
}
1 голос
/ 20 февраля 2012

В PHP 5.3 вы можете сделать это:

<?php
$fields = range(1, 100);

foreach (array_chunk(array_reverse($fields, true), 15, true) as $i => $chunk) {
  echo 'Group ' . $i . ":<br/>\n";
  $chunk_rev = array_reverse($chunk, true);
  array_walk($chunk_rev, function($value) {
    echo "$value<br/>\n";
  });
}

См. демо .

0 голосов
/ 20 февраля 2012

Подумайте о состоянии завершения цикла.

Если $ j уменьшается, а $ j начинается ниже значения сравнения, $ j никогда не будет больше значения сравнения, поэтому цикл никогда не завершится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...