2011-01-19 37 views
47

Khi một mảng được chuyển đến foreach là thứ tự đầu ra được đảm bảo giống như đầu vào? Tôi biết bằng một số ngôn ngữ mà thứ tự đầu ra không được đảm bảo vì mỗi phần tử được xử lý cùng một lúc.Foreach có được đảm bảo lặp lại theo thứ tự mảng trong php không?

Ví dụ: tôi đang chuyển mảng đã sắp xếp đến foreach để ghi vào tệp. Tôi muốn chắc chắn rằng mảng sẽ được sắp xếp trong tập tin đầu ra.

+3

* (tham chiếu) * http://php.net/manual/en/control-structures.foreach.php – Gordon

+0

Trả lời ở trên, nhưng hãy xem array_multisort() trong trường hợp bạn cần sắp xếp mảng trước khi thực hiện một vòng lặp foreach: http://php.net/manual/en/function.array-multisort.php – o1iver

+2

Tôi đến đây với cùng một câu hỏi sau khi đọc php 'foreach' doc. Nó không phát nổ trạng thái mà trật tự sẽ vẫn còn. Tôi không nói về các ví dụ không phải là bình luận. Tham chiếu duy nhất là 'reset()' nói về phần tử hiện tại và phần tử tiếp theo. – Sebastian

Trả lời

30

Có ... bất kỳ thứ tự nào bạn sẽ cung cấp cho foreach, nó sẽ lặp lại theo cùng một đơn đặt hàng. Và trong trường hợp của bạn array will be sorted in the output file.

+1

+1 - Hãy đánh tôi! – Fenton

2

Có - các mục sẽ được xuất theo cùng thứ tự nằm trong mảng.

8

Điều này là chính xác, foreach sẽ xuất theo thứ tự giống như mảng đầu vào.

12

Tham chiếu có liên quan có thể không phải là của foreach hoặc sắp xếp như đã đề cập trước đây, nhưng thay vào đó là tham chiếu của mảng.

Language reference — Arrays nói:

Một mảng trong PHP thực sự là một bản đồ ra lệnh.

Các vấn đề liên quan