为什么php无法通过中断退出循环?

时间:2018-09-21 19:35:33

标签: php

我有for循环:

我有一个$request->photos数组。该数组中的键为:

[1,3,5,8]

最后,我需要获得一个数组,其中索引从1到8,项是布尔变量。除此之外,我需要保存阵列中的照片。

然后我需要遍历数组并检查$i是否等于$key

foreach($request->photos as $key => $photo) {
    for($i = 1; $i < 9; $i++) {
        if ($key == $i) {
            dump($key);
            $path = storage_path('app/public/images/' . $pdf->id . '-' . $key . '.png');
            $image = Image::make($photo->getRealPath())->widen(300)->save($path);
            $imagesArray[$i] = true;
            break;
        } else {
            $imagesArray[$i] = false;
        }                    
    }
}

如果$key等于$i,我需要退出循环。但是在这种情况下,即使找到了breakfor也不起作用,并且$key循环仍会继续。

为什么会这样?

1 个答案:

答案 0 :(得分:2)

for循环是不必要的。只需使用$request->photos的键作为填充$imagesArray的键即可。

$imagesArray = array_fill(1, 8, false);
foreach ($request->photos as $key => $photo) {
    dump($key);
    $path = storage_path('app/public/images/' . $pdf->id . '-' . $key . '.png');
    $image = Image::make($photo->getRealPath())->widen(300)->save($path);
    $imagesArray[$key] = true;
}