2011-01-19 10 views
47

Kiedy tablica jest przekazywana do foreach, czy kolejność wyjściowa jest taka sama, jak wartość wejściowa? W niektórych językach wiem, że kolejność wyjściowa nie jest gwarantowana, ponieważ każdy element jest przetwarzany w tym samym czasie.Czy foreach jest gwarantowany do iteracji w kolejności tablicowej w php?

Na przykład, ja przechodząc posortowaną tablicę foreach zapisu do pliku. Chcę mieć pewność, że tablica zostanie posortowana w pliku wyjściowym.

+3

* (odniesienia) * http://php.net/manual/en/control-structures.foreach.php – Gordon

+0

odpowiedzi powyżej, ale spojrzeć na array_multisort() w przypadku kiedykolwiek trzeba posortować tablicę przed wykonaniem pętli foreach: http://php.net/manual/en/function.array-multisort.php – o1iver

+2

Przyszedłem tutaj z tym samym pytaniem po przeczytaniu php 'foreach' doc. Nie wyjaśnia, że ​​kolejność pozostanie. Nie mówię o przykładach ani komentarzach. Jedynym odniesieniem jest 'reset()' mówiący o bieżącym elemencie i następnym elemencie. – Sebastian

Odpowiedz

30

Tak ... bez względu na to, jaką kolejność przekażesz, będzie się powtarzać w tych samych zamówieniach. A w twoim przypadku array will be sorted in the output file.

+1

+1 - Pokonaj mnie! – Fenton

2

Tak - elementy będzie emitowany w tej samej kolejności, w jakiej znajdują się w obrębie tablicy.

8

Jest to poprawne foreach wyjściowy będzie w tym samym porządku jak w tablicy wejściowego.

12

Właściwe odniesienie może nie być wartością z foreach lub sortowania jak poprzednio wspomniano, ale zamiast tablicy.

Language reference — Arrays mówi:

Tablica w PHP jest obecnie uporządkowaną map.

Powiązane problemy