在PHP中将foreach替换为for迭代

在PHP中将foreach替换为for迭代,php,for-loop,foreach,iteration,Php,For Loop,Foreach,Iteration,问题: // Create counter $i = 0; // Set number of photos to show $count = 5; // Set height and width for photos $size = '100'; // Show results foreach ($media->data as $data) { // Show photo echo '<p><img src="'.$data->images-

问题:

// Create counter
$i = 0;

// Set number of photos to show
$count = 5;

// Set height and width for photos
$size = '100';

// Show results
foreach ($media->data as $data) 
{
    // Show photo
    echo '<p><img src="'.$data->images->thumbnail->url.'" height="'.$size.'" width="'.$size.'" alt="Instagram bild"></p>';

    // Abort when number of photos has been reached
    if (++$i == $count) break;
}
我有一个foreach循环,它非常适合拉取图像,但是当我尝试用for循环替换它时,它会破坏代码和图像

PHP代码:

// Create counter
$i = 0;

// Set number of photos to show
$count = 5;

// Set height and width for photos
$size = '100';

// Show results
foreach ($media->data as $data) 
{
    // Show photo
    echo '<p><img src="'.$data->images->thumbnail->url.'" height="'.$size.'" width="'.$size.'" alt="Instagram bild"></p>';

    // Abort when number of photos has been reached
    if (++$i == $count) break;
}
//创建计数器
$i=0;
//设置要显示的照片数
$count=5;
//设置照片的高度和宽度
$size='100';
//显示结果
foreach($media->data as$data)
{
//展示照片
回显“图像->缩略图->url.”高度=“”.$size.”宽度=“.$size.”alt=“Instagram bild”>

; //达到照片数时中止 如果(++$i==$count)中断; }
所需解决方案:

// Create counter
$i = 0;

// Set number of photos to show
$count = 5;

// Set height and width for photos
$size = '100';

// Show results
foreach ($media->data as $data) 
{
    // Show photo
    echo '<p><img src="'.$data->images->thumbnail->url.'" height="'.$size.'" width="'.$size.'" alt="Instagram bild"></p>';

    // Abort when number of photos has been reached
    if (++$i == $count) break;
}
将foreach替换为for,并在for循环中设置计数器。这可能非常简单,但由于某些原因,我现在完全卡住了。

$limit=5;
$limit = 5;

for($i = 0; $i < count($media->data) && $i < $limit; $i++) {
    echo '<p><img src="'.$media->data[$i]->images->thumbnail->url.'" height="'.$size.'" width="'.$size.'" alt="Instagram bild"></p>';
}
对于($i=0;$idata)&&$i图像->缩略图->url.“height=“”.$size.“width=“”.$size.“alt=”Instagram bild“>

”; }
$limit=5;
对于($i=0;$idata)&&$i图像->缩略图->url.“height=“”.$size.“width=“”.$size.“alt=”Instagram bild“>

”; }
这是如果您的
$media->data
变量可以被索引

<?php
// Create counter
$i = 0;

// Set number of photos to show
$count = 5;

// Set height and width for photos
$size = '100';

// Show results
for ($i = 0; $i < $count; $i++) 
{
    $data = $media->data[$i];
    // Show photo
    echo '<p><img src="'.$data->images->thumbnail->url.'" height="'.$size.'" width="'.$size.'" alt="Instagram bild"></p>';
}
另外,正如在下面的评论中所写的那样,如果图像少于5个,最好检查
$media->data
变量的大小。您可以做出如下操作:

$count = (count($media->data) < 5)? count($media->data): 5;
$count=(计数($media->data)<5)?计数($media->data):5;

这是如果您的
$media->data
变量可以被索引

<?php
// Create counter
$i = 0;

// Set number of photos to show
$count = 5;

// Set height and width for photos
$size = '100';

// Show results
for ($i = 0; $i < $count; $i++) 
{
    $data = $media->data[$i];
    // Show photo
    echo '<p><img src="'.$data->images->thumbnail->url.'" height="'.$size.'" width="'.$size.'" alt="Instagram bild"></p>';
}
另外,正如在下面的评论中所写的那样,如果图像少于5个,最好检查
$media->data
变量的大小。您可以做出如下操作:

$count = (count($media->data) < 5)? count($media->data): 5;
$count=(计数($media->data)<5)?计数($media->data):5;

如果在进入循环之前确定了正确的计数,则可以在每次迭代时保存一个检查,将初始化代码与循环代码分开

假设
$media>data
是一个带有数字索引的数组,那么
count
函数和类似的索引将起作用

但我必须承认,我不知道你为什么要这样做。foreach循环同样简单

// Set number of photos to show
$count = count($media->data);
if ($count > 5)
    $count = 5;
// Set height and width for photos
$size = '100';

// Show results
for ($i = 0; $i < $count; $i++)
{
    // Use $i as an index to get the right item.
    $data = $media->data[$i];
    echo '<p><img src="'.$data->images->thumbnail->url.'" height="'.$size.'" width="'.$size.'" alt="Instagram bild"></p>';
}
//设置要显示的照片数量
$count=计数($media->data);
如果($count>5)
$count=5;
//设置照片的高度和宽度
$size='100';
//显示结果
对于($i=0;$i<$count;$i++)
{
//使用$i作为索引以获取正确的项。
$data=$media->data[$i];
回显“图像->缩略图->url.”高度=“”.$size.”宽度=“.$size.”alt=“Instagram bild”>

; }
如果在进入循环之前确定了正确的计数,则可以在每次迭代时保存一个检查,将初始化代码与循环代码分开

假设
$media>data
是一个带有数字索引的数组,那么
count
函数和类似的索引将起作用

但我必须承认我不知道你为什么要这么做。foreach循环同样简单

// Set number of photos to show
$count = count($media->data);
if ($count > 5)
    $count = 5;
// Set height and width for photos
$size = '100';

// Show results
for ($i = 0; $i < $count; $i++)
{
    // Use $i as an index to get the right item.
    $data = $media->data[$i];
    echo '<p><img src="'.$data->images->thumbnail->url.'" height="'.$size.'" width="'.$size.'" alt="Instagram bild"></p>';
}
//设置要显示的照片数量
$count=计数($media->data);
如果($count>5)
$count=5;
//设置照片的高度和宽度
$size='100';
//显示结果
对于($i=0;$i<$count;$i++)
{
//使用$i作为索引以获取正确的项。
$data=$media->data[$i];
回显“图像->缩略图->url.”高度=“”.$size.”宽度=“.$size.”alt=“Instagram bild”>

; }

什么是$media->data?Array?你能给它编索引吗?for循环在哪里?你尝试过什么?@PeterKiss是的,它是一个数组,使用GET/tags/tag name/media/从Instagram中提取图像/为什么不想使用
foreach
?我认为使用“if(+$I==$count)break”这个词代码看起来很难看;“通过for-loop来限制而不是限制照片的数量。什么是$media->data?数组?你能为它建立索引吗?for-loop在哪里?你尝试过什么?@PeterKiss是的,它是一个数组,使用GET/tags/tag name/media/从Instagram中提取图像/为什么不想使用
foreach
?我认为在我们的应用中,代码看起来很难看。”g“如果(+$i==$count)中断;“通过for循环来限制而不是限制照片的数量。我认为您需要将
foreach
更改为
for
非常有效!非常感谢您,我没有想到在数据中使用$I,但现在它是有意义的。如果数组中的图像少于5个,则此操作将失败。@GolezTrol您是对的,但我写的答案是正确的。”bloke需要它。我希望在设置
$count
变量之前,他会对此进行一些检查。+1。我认为您需要将
foreach
更改为
,因为
工作起来很有魅力!非常感谢,我没有想到在数据中使用$I,但现在它有意义。如果数组中的图像少于5个,这将失败。@GolezTrol你是对的,但我写的答案是因为那家伙需要它。我希望他在设置
$count
变量之前对此进行一些检查。+1。我是唯一怀疑键不是数字的人吗?任何数组都可以有两个键…数字键始终存在,直到PHP出现新事物;-)for($I=0,$count=count)($media->data);$i<$limit&&$i<$count;$i++){/*cleaner and faster*/}我是唯一怀疑这些键不是数字的人吗?任何数组都可以有两个键…数字键总是存在的,直到PHP出现新事物;-)for($i=0,$count=count($media->data);$i<$limit&$i<$count;$i++/$clear and faster*}