這是我的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