0

我对 PHP 很陌生,我试图循环遍历一个数组并在 5 个项目后停止。我正在使用以下内容:

    $images = ( $f->APIVer == "1.2.2" ) ? $images['Images'] : $images;
            // Display the thumbnails and link to the medium image for each image
            foreach ( $images as $index => $image) {

                echo '<li><a href="'.$image['XLargeURL'].'"><img src="'.$image['TinyURL'].'" alt="thumbnail"/></li>';
            }
            while ( $index < 5 );
        }

虽然它似乎不起作用......我做错了什么吗?

提前致谢

4

4 回答 4

4

如果数组具有从零开始的索引,您可以执行以下操作:

foreach ( $images as $index => $image) {
    if ($index == 5) break;
    echo '<li><a href="'.$image['XLargeURL'].'"><img src="'.$image['TinyURL'].'" alt="thumbnail"/></li>';
}

否则,您可以添加自己的计数器:

$i = 0;
foreach ( $images as $index => $image) {
    $i++;
    if ($i == 5) break;
    echo '<li><a href="'.$image['XLargeURL'].'"><img src="'.$image['TinyURL'].'" alt="thumbnail"/></li>';
}

您尝试的是另一种类型的循环:

$index = 0;
do {
    echo '<li><a href="'.$images[$index]['XLargeURL'].'"><img src="'.$images[$index]['TinyURL'].'" alt="thumbnail"/></li>';
    $index++;
} while ( $index < 5 );

或者:

$index = 0;
while ( $index < 5 ) {
    echo '<li><a href="'.$images[$index]['XLargeURL'].'"><img src="'.$images[$index]['TinyURL'].'" alt="thumbnail"/></li>';
    $index++;
}

另一种选择是for循环:

for($index=0; $index < 5; $index++) {
    echo '<li><a href="'.$images[$index]['XLargeURL'].'"><img src="'.$images[$index]['TinyURL'].'" alt="thumbnail"/></li>';
}
于 2012-05-12T18:22:23.540 回答
0
   $images = ( $f->APIVer == "1.2.2" ) ? $images['Images'] : $images;
   $nm = 0;
   foreach ( $images as $index => $image) {
      if($nm < 5){
           echo '<li><a href="'.$image['XLargeURL'].'"><img src="'.$image['TinyURL'].'" alt="thumbnail"/></li>';
         }
       $nm++;
       }
于 2012-05-12T18:20:39.983 回答
0

它应该是这样的:

$images = ( $f->APIVer == "1.2.2" ) ? $images['Images'] : $images;

$i = 0;
// Display the thumbnails and link to the medium image for each image
foreach ( $images as $index => $image) {
    if ($i == 5) break;
    echo '<li><a href="'.$image['XLargeURL'].'"><img src="'.$image['TinyURL'].'" alt="thumbnail"/></li>';
    $i++;
}

while本身就是一个循环,就像foreach.

于 2012-05-12T18:22:01.513 回答
0

鉴于这$index是一个整数,您可以跳出循环:

foreach ($images as $index => $image) {
    echo '<li><a href="'.$image['XLargeURL'].'"><img src="'.$image['TinyURL'].'" alt="thumbnail"/></li>';
    if ($index >= 5) {
        break;
    }
}
于 2012-05-12T18:23:20.133 回答