Простой идиотский цикл, который я не могу понять, как это сделать - PullRequest
1 голос
/ 06 сентября 2011

Я должен перебрать массив и отобразить его элементы.Я должен разбить его на страницы, чтобы я мог отобразить нумератор страниц.Структура paginator выглядит примерно так:

<div class='paginator'>
    <div class="page">
        <img src="path/to/picture"/>
        <img src="path/to/picture"/>
        <img src="path/to/picture"/>
        <img src="path/to/picture"/>
    </div>
    <div class="page">
        <img src="path/to/picture"/>
        <img src="path/to/picture"/>
        <img src="path/to/picture"/>
        <img src="path/to/picture"/>
    </div>
</div>

Наконец, у меня есть массив PHP с путями.Я хочу что-то вроде этого:

echo "<div class='paginator'>";
for ($i = 0; $i < 3; $i++) {
   echo "<div class='page'>";
   for($j = 0; $j < 4; $j++) {
      echo "<img src='" . $arr[$i * $j] . "'/>"     
   }
   echo "</div>
}
echo "</div>";

Но это не работает.Я делаю петли неправильно и не могу понять, как они должны быть.

Ответы [ 3 ]

3 голосов
/ 06 сентября 2011

Предполагая, что ваша проблема не просто в синтаксисе, я думаю, что вам нужно $arr[$i * 4 + $j] вместо $arr[$i * $j]
Где «4» - размер каждой строки.
Посмотрите на этот пример

0  1  2  3 (4 elements in this row which starts from 0)
4  5  6  7 (this row starts from 4)
8  9 10 11 (this starts from 4 * 2)

Каждая строка начинается с 4 (количество элементов в строке), умноженного на номер строки (начиная с 0). Чтобы перебрать каждый элемент в строке, вы должны добавить индекс элемента в строке ($ j в вашем примере) так:

1 голос
/ 06 сентября 2011

Похоже, вы пытаетесь умножить переменные $i и $j, что, вероятно, не то, что вы хотите:

echo "<img src='" . $arr[$i * $j] . "'/>"

То, что вам нужно поместить сюда, будет зависеть отструктура массива $arr.Вы имеете в виду:

$arr[$i][$j]

Это будет работать для массива с этой структурой (просто пример):

$arr[0][0] = 'page 1 image 1';
$arr[0][1] = 'page 1 image 2';
//....
$arr[1][3] = 'page 2 image 4';
1 голос
/ 06 сентября 2011
echo "<div class='paginator'>";
for ($i = 0; $i < 3; $i++) {
   echo "<div class='page'>";
   for($j = 0; $j < 4; $j++) {
      echo "<img src='" . $arr[$i * $j] . "'/>";
   }
   echo "</div>";
}
echo "</div>";

Вы забыли точку с запятой и цитату.

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