如何限制foreach循环

时间:2017-06-27 10:30:31

标签: php

这是我的foreach代码

if ($i++ == 10) break;

没有这个限制循环的更好方法吗?

{{1}}

2 个答案:

答案 0 :(得分:6)

您可以限制循环迭代的实际数组:

<?php
foreach (array_slice($response3["keywords"], 0, 10) as $genreObject) {
    $keywords_name = $genreObject["name"];
    $stmt->execute();
}

或者,如果数组是直接数字索引的数组,则可以使用效率更高的for循环:

<?php
for ($i=0; $i<=10; $i++) {
    $keywords_name = $response3["keywords"][$i]["name"];
    $stmt->execute();
}

答案 1 :(得分:1)

就个人而言,当代码的文档编写得很好时,我发现丢失可读性并不是什么大问题。你可以做到这一点。

<?php
     $i=0;
     while($i<10 && $keyword = $response3["keywords"][$i++]; ) {
         $keywords_name = $keyword["name"];
         $stmt->execute();
     }

它看起来并不像array_slice() w / foreach循环一样整洁,但这会导致制作一个新的阵列并不重要,除非它特别长并且沉重的剧本