这实际上有效,但有另一种循环方式吗?

时间:2011-06-08 10:53:32

标签: php arrays session loops for-loop

 // Loop $key

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

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

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

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

}

4 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:3)

还有其他几种方式:

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循环的技术。

答案 2 :(得分:1)

您仍然可以使用foreach。应该看起来像这样:

foreach ($_SESSION['imageURL'] as $image) {
    echo $image;
}

答案 3 :(得分:1)

为了只使两个数组保持值(参见OP对问题的评论):

// $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];
}

注意
这仅在两个数组是“并行”时才有效,即$_SESSION['imageURL']的第n个值与$_SESSION['clubURL']的第n个值匹配,直到任何(或两个)数组结束。