Sự khác nhau giữa vòng lặp for
và vòng lặp foreach
trong PHP là gì?sự khác biệt giữa vòng lặp & cho mỗi vòng lặp trong php
Trả lời
Nó nên được khá đơn giản
foreach
tóm tắt đi một số mức độ phức tạp và thường là dễ dàng hơn. Tôi sử dụng điều này bất cứ khi nào tôi không cần phải biết chỉ số số của mảng hoặc $key => $value
sẽ không cung cấp cho tôi.
for
là kiểu C cũ hơn, trước tiên bạn phải thực hiện count()
để bạn biết số lần lặp mà vòng lặp yêu cầu. Nó rất hữu ích khi bạn cần phải biết chỉ mục, hoặc để đếm ngược hoặc bước qua các nhóm khác nhau.
'expr2' trong' for' có thể là bất kỳ điều gì bạn xem là điều kiện kết thúc. Nó không phải là 'count()'. Ví dụ, với một Iterator bạn có thể làm 'for ($ it-> rewind(); $ it-> valid(); $ it-> next()) {/ * ... * /}', nhưng nó có thể cũng là một cuộc gọi lại, truy vấn db, bất cứ điều gì. – Gordon
@Gordon: Tôi chuẩn bị nói điều tương tự. Mọi người ở đây dường như nghĩ rằng các vòng lặp 'for' chỉ có thể được sử dụng với các số ... –
@Felix @Gordon Vâng, tôi đã cố gắng làm cho nó trở thành một ví dụ đơn giản để duyệt qua một mảng.Nhưng nhờ sự đầu vào của bạn. – alex
Foreach về cơ bản là một phím tắt để thực hiện những điều sau
//Foreach method
foreach ($myArray as $myVar)
{
}
//Normal for equivalent
for ($i = 0; $i < $limit; $i++)
{
$myVar = $myArray[$i];
}
Nhưng có những vấn đề khác nữa, read this bài viết về nó
Foreach là rất tốt cho lặp qua mảng đó sử dụng các phím và các giá trị.
Ví dụ, nếu tôi có một mảng gọi là 'Người dùng':
$User = array(
'name' => 'Bob',
'email' => '[email protected]',
'age' => 200
);
tôi có thể lặp qua đó rất dễ dàng và vẫn tận dụng các phím:
foreach ($User as $key => $value) {
echo $key.' is '.$value.'<br />';
}
này sẽ in ra :
name is Bob
email is [email protected]
age is 200
Với vòng, việc giữ lại các phím sẽ khó khăn hơn .
Khi bạn đang sử dụng thực hành hướng đối tượng trong PHP, bạn sẽ thấy rằng bạn sẽ chỉ sử dụng foreach
gần như hoàn toàn, chỉ với vòngcho số hoặc danh sách. foreach
cũng ngăn bạn không phải sử dụng count($array)
để tìm tổng số phần tử trong mảng.
foreach
được sử dụng để lặp mảng và không có gì khác.
for
là vòng lặp dựa trên mục đích chung
Kể từ PHP 5, có thể lặp lại các đối tượng. – Gordon
Vòng lặp "cho" cung cấp cho bạn số gia tăng (sử dụng phổ biến nhất) mà bạn có thể sử dụng theo bất kỳ cách nào bạn muốn.
"foreach" là một cấu trúc đặc biệt được tạo ra để xem xét các thành viên liên tiếp của một mảng.
Ví dụ: bạn có thể sử dụng vòng lặp "for" để tạo thứ gì đó có chức năng "foreach". Nhưng foreach làm điều đó với mã ít yêu cầu hơn.
'for' chỉ cung cấp cho bạn số gia tăng nếu bạn đã xác định số đó để làm như vậy. Các biểu thức được sử dụng trong một 'for' là tùy ý. – Gordon
foreach
dành riêng cho việc lặp qua các phần tử của mảng hoặc đối tượng.
for
là để làm điều gì đó ... mọi thứ ... có điều kiện bắt đầu, điều kiện dừng và hướng dẫn lặp lại được xác định.
Vì vậy, for
có thể được sử dụng cho nhiều thứ rộng hơn. Trong thực tế, không có biểu thức thứ ba - không có hướng dẫn lặp lại - một for
sẽ trở thành một while
.
Ví dụ:
// Typical use of foreach
// It's strength is iterating over arrays & objects
$people = array("Tom", "Dick", "Hairy");
foreach ($people as $person) {
echo "$person <br/>"; }
Bây giờ bạn có thể làm điều tương tự với for
, nhưng tại sao bận tâm? Thay vào đó for
thể được sử dụng cho những thứ hoàn toàn khác nhau:
// Prints random names from array until Hairy is picked
for ($people = array("Tom", "Dick", "Hairy"); // initial condition
$people[0] != "Hairy"; // stop condition
shuffle($people) // iteration instructions
) {
echo "$people[0] <br/>";
}
Các điều kiện ban đầu được thực hiện trước khi for
vòng một lần, không có vấn đề gì. Nếu điều kiện dừng đánh giá thành false
vòng lặp sẽ bị dừng ngay lập tức. Các hướng dẫn thay đổi được thực hiện ở cuối mỗi vòng lặp. Lưu ý rằng hướng dẫn thay đổi không phải là số gia tăng.
Dưới đây là ví dụ về việc chuyển vòng lặp for
thành vòng lặp while
bằng cách bỏ qua các hướng dẫn lặp lại.
// Does the loop a random number of times.
// No thired expression
for ($rand = function() {$array = array(true, true, true, true, false);
shuffle($array);
return $array;
};
current($rand());
// empty third expression
) {
echo "I bring nothing to the table.<br/>";
}
tốt hơn và câu trả lời dễ dàng là: Sự khác nhau giữa Foreach và Đối Loop: -
1. Foreach Loop:- Details are following.
a) Foreach loop used when you have an array, without array it's not worked.
b) Loop working at the end of array count. For example an array have 5 value
then loop run 5 times.
c) Syntax is following.
$array = array("Surinder","Rahul","Manoj","Bharti","Rana","Manish");
Foreach($array as $name){
echo "Employe Name is ".$name.".";
}
This will print as following.
Employe Name is Surinder.
Employe Name is Rahul.
Employe Name is Manoj.
Employe Name is Bharti.
Employe Name is Rana.
Employe Name is Manish.
2. For Loop:- Details are following.
a) For loop used according to condition.
b) Loop working at the end of given condition.
c) Syntax is following.
$array = array("Surinder","Rahul","Manoj","Bharti","Rana","Manish");
For($i=0;$i<6;$i++){
echo "Employe Name is ".$array[$i].";
}
At the place of 6,You can used count array function.
This will print as following.
Employe Name is Surinder.
Employe Name is Rahul.
Employe Name is Manoj.
Employe Name is Bharti.
Employe Name is Rana.
Employe Name is Manish.
These are the difference between Foreach and for loop.
Để biết thêm thông đến đó: http://ibmphp.blogspot.com/2012/10/difference-between-foreach-and-for-loop.html
cho vòng lặp là được sử dụng nếu chúng ta biết đã bao nhiêu lần tập lệnh nên được chạy nhưng trong trường hợp của foreach vòng lặp, chúng tôi không có bất kỳ ý tưởng nào về số lần lặp lại.
Cũng foreach vòng lặp được sử dụng để lặp chỉ mảng và đối tượng.
Bạn có thể tham khảo các liên kết để tìm hiểu rõ hơn về sự khác biệt giữa cho và foreach vòng lặp -
https://www.quora.com/What-is-the-difference-between-for-and-foreach-in-php
- 1. cho mỗi vòng lặp
- 2. Sự khác nhau giữa vô hạn trong khi vòng lặp và vòng lặp là gì?
- 3. Sự khác biệt giữa các vòng
- 4. JavaScript cho sự khác biệt về chỉ số vòng lặp
- 5. @autoreleasepool trong vòng lặp hoặc vòng lặp trong @autoreleasepool?
- 6. XSL lồng nhau cho mỗi vòng lặp
- 7. xsl: cho mỗi vòng lặp truy cập
- 8. Đọc nút Xml cho mỗi vòng lặp
- 9. SQL Server cho mỗi vòng lặp
- 10. lặp lại một vòng lặp cho vòng lặp
- 11. Hiệu suất khác biệt trong điều kiện vòng lặp?
- 12. Sự khác biệt thực tế giữa vòng lặp và đệ quy
- 13. trả lại cho vòng lặp hoặc vòng lặp ngoài
- 14. Php cho vòng lặp có 2 biến?
- 15. Truy cập vòng lặp Python trong vòng lặp for
- 16. Sự khác biệt giữa hai giải pháp này - lambda hoặc vòng lặp - Python
- 17. JavaScript thay thế cho "cho mỗi" vòng lặp
- 18. Coffeescript. cho/trong vòng lặp
- 19. Các trình lặp vòng lặp cho C++
- 20. Cách sử dụng cho mỗi vòng lặp trong C++
- 21. Vòng lặp for không lặp
- 22. năm increment Auto trong vòng lặp mỗi năm
- 23. Tại sao có sự khác biệt về tốc độ giữa vòng lặp của Clojure và phương pháp lặp lại
- 24. có vòng lặp và vòng lặp trong con rối không?
- 25. C++ lặp & tối ưu hóa vòng lặp
- 26. Lặp lại vòng lặp cho vòng lặp% x% lần trong lô
- 27. php mô đun trong một vòng lặp
- 28. Vòng lặp sự kiện Node.js - nginx/apache
- 29. Lặp lại ngẫu nhiên trong vòng lặp
- 30. Giới hạn của các vòng lặp được tính một lần hay với mỗi vòng lặp?
* (tham khảo) * http://de2.php.net/manual/en /control-structures.for.php và http://de2.php.net/manual/en/control-structures.foreach.php – Gordon
Tôi đề nghị bạn xem một số tài liệu về cả hai loại vòng lặp. Có một số khác biệt cơ bản. Hay bạn có một vấn đề cụ thể? Nếu có, vui lòng làm rõ trong câu hỏi của bạn. –