Это на самом деле работает, но есть ли другой способ зацикливаться? - PullRequest
1 голос
/ 08 июня 2011
 // Loop $key

$key = count($_SESSION['imageURL']);

for ($i = 1; $i <= $key; $i++) {

    echo $_SESSION['imageURL'][$i];

    echo $_SESSION['clubURL'][$i];

}

Ответы [ 4 ]

3 голосов
/ 08 июня 2011
foreach ($_SESSION['imageURL'] as $k=>$image)
{
   echo $image;
   echo $_SESSION['clubURL'][$k];
}
3 голосов
/ 08 июня 2011

Есть несколько других способов:

foreach

foreach ($_SESSION['imageURL'] as $key => $image) {
    echo $image;
    echo $_SESSION['clubURL'][$key];
}

while

while (list ($key, $image) = each ($_SESSION['imageURL']) {
    echo $image;
    echo $_SESSION['clubURL'][$key];
}

do..while

if (count($_SESSION['imageURL']) {
    do {
        echo current($_SESSION['imageURL']);
        echo $_SESSION['clubURL'][key($_SESSION['imageURL'])];
    } while (next($_SESSION['clubURL']));
}

Лично я предпочитаю вашу технику с петлей for.

1 голос
/ 08 июня 2011

Чтобы пройти только до , оба массива содержат значения (см. Комментарий ОП к вопросу):

// $shortest holds the length of the *shortest* array, i.e., iteration
// only goes as far as both arrays have indexes.
$shortest = min(count($_SESSION['imageURL']), count($_SESSION['clubURL']));
for ($i = 0; $i < $shortest; $i++) {
    echo $_SESSION['imageURL'][$i];
    echo $_SESSION['clubURL'][$i];
}

Примечание
Это работает, только если два массива "параллельны", то есть n-ное значение $_SESSION['imageURL'] соответствует n-му значению $_SESSION['clubURL'] до конца любого (или обоих) массивов.

1 голос
/ 08 июня 2011

Вы все еще можете использовать foreach.Должно выглядеть так:

foreach ($_SESSION['imageURL'] as $image) {
    echo $image;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...