Làm thế nào tôi có thể giới hạn một tuyên bố foreach()? Nói rằng tôi chỉ muốn nó chạy 2 'đầu tiên' hay thứ gì đó?PHP: Giới hạn foreach() tuyên bố?
24
A
Trả lời
31
Bạn có thể sử dụng
break;
hoặc
foreach() if ($tmp++ < 2) {
}
(giải pháp thứ hai thậm chí còn tồi tệ hơn)
74
Có rất nhiều cách, một là sử dụng một bộ đếm:
$i = 0;
foreach ($arr as $k => $v) {
/* Do stuff */
if (++$i == 2) break;
}
Cách khác sẽ được cắt 2 yếu tố đầu tiên, điều này không phải là hiệu quả mặc dù:
foreach (array_slice($arr, 0, 2) as $k => $v) {
/* Do stuff */
}
Bạn cũng có thể làm một cái gì đó như thế này (về cơ bản giống như foreach đầu tiên, nhưng với cho):
for ($i = 0, reset($arr); list($k,$v) = each($arr) && $i < 2; $i++) {
}
13
4
đây là giải pháp tốt nhất đối với tôi :)
$i=0;
foreach() if ($i < yourlimitnumber) {
$i +=1;
}
8
Trong PHP 5.5+, bạn có thể làm
function limit($iterable, $limit) {
foreach ($iterable as $key => $value) {
if (!$limit--) break;
yield $key => $value;
}
}
foreach (limit($arr, 10) as $key => $value) {
// do stuff
}
Generators rock.
Các vấn đề liên quan
- 1. Tuyên bố Foreach trong listbox
- 2. PHP: json giới hạn decode
- 3. PHP Tuyên Bố Giải thích
- 4. Tuyên bố, tuyên bố, tuyên bố
- 5. Giới hạn bộ nhớ PHP
- 6. Tuyên bố ternary PHP sử dụng 'và'
- 7. PHP MySQLi multi_query chuẩn bị tuyên bố
- 8. php chuyển đổi tuyên bố bên trong một tuyên bố chuyển đổi
- 9. Biểu/Tuyên Bố
- 10. giới hạn số lần vòng lặp chạy trong php
- 11. PHP str_replace() với tham số giới hạn?
- 12. php Post giới hạn 1000 biến
- 13. PHP/Apache/AJAX - Giới hạn POST?
- 14. php có bị giới hạn không?
- 15. max_input_vars giới hạn trong PHP 5.2.17
- 16. Fatal error: Tuyên bố của .. phải phù hợp với .. PHP
- 17. Tuyên bố chèn Mysqli
- 18. D3 bố trí lực hướng với hộp giới hạn
- 19. IF Tuyên bố nhiều điều kiện, cùng một tuyên bố
- 20. Bật "Tuyên bố mở" trong Aptana Studio 3 PHP Editor
- 21. PHP Nếu/Khác tuyên bố không có dấu ngoặc đơn
- 22. Sử dụng các biến php bên tuyên bố chèn MySQL
- 23. Điều này là gì bên trong Colon tuyên bố cho php?
- 24. Nơi nhập khẩu tuyên bố
- 25. C# Tuyên bố Foreach không chứa định nghĩa công khai cho GetEnumerator
- 26. Lặp hai Lists hay Mảng với tuyên bố một ForEach trong C#
- 27. WPF DialogResult tuyên bố?
- 28. Tuyên bố Sql - goto
- 29. Tuyên bố GTK
- 30. Tuyên bố lệnh delphi
ảnh cuối cùng sẽ rất chậm và xấu. sử dụng 1 hoặc 2 để thay thế. – mauris
Cách đầu tiên là tốt nhất tôi nghĩ rằng – goksel
bạn cũng có thể sử dụng $ k làm khóa, nếu ($ k == 2) {break; } – Ruben