这是我的foreach代码如何限制foreach循环
foreach ($response3["keywords"] as $genreObject) {
$keywords_name = $genreObject["name"];
$stmt->execute();
}
什么更好的办法来限制循环,不这样?
if ($i++ == 10) break;
这是我的foreach代码如何限制foreach循环
foreach ($response3["keywords"] as $genreObject) {
$keywords_name = $genreObject["name"];
$stmt->execute();
}
什么更好的办法来限制循环,不这样?
if ($i++ == 10) break;
您可以限制实际阵列的循环迭代:
<?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();
}
哦,第一种方法比break语句更好吗? –
@JohnDoo在编程中谈论“好”或“坏”是一个值得怀疑的事情。这个判断完全取决于你所应用的标准......其中最重要的一个方面就是可读性,因为这是代码重用和维护的原因。 – arkascha
就我个人而言,当代码的文档写得很好时,我发现丢失的可读性不成问题。你可以做到这一点。
<?php
$i=0;
while($i<10 && $keyword = $response3["keywords"][$i++];) {
$keywords_name = $keyword["name"];
$stmt->execute();
}
它看起来并不整齐的array_slice()
瓦特/ foreach循环,但这样会导致正在进行这其实并不重要,除非它是一个特别长且重的脚本
必须是'while($ i <10 && ..)',尽管同样的错误在这个问题中。我假设你想要10而不是11,因为10是一个整数。 – Adder
谢谢,我修好了 –
怎么样的新数组array_slice($阵列,0,10); – JYoThI