![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
Ostatnio natrafilem na pewny blad (?) dzialania foreach. Nie jestem pewien czy mozna go zaliczyc do bledow czy tez jest to zalozeniem tej petli. Dotychczas zupelnie tego nie zauwazalem ale podczas wypisywania przez foreach elementow tablicy, nie nastepuje to zgodnie z indexami, tylko zgodnie z kolejnoscia wpisania do tablicy danych.
Przyklad: [php:1:658baaf040]<?php $arrTest[0] = 'index 0'; $arrTest[1] = 'index 1'; $arrTest[3] = 'index 3'; $arrTest[2] = 'index 2'; foreach( $arrTest as $var ){ echo $var.'<br>'; } ?>[/php:1:658baaf040] Wynik: Cytat index 0
index 1 index 3 index 2 Czy wynikiem nie powinno byc: Cytat index 0
index 1 index 2 index 3 :?: |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
to jest przecież oczywiste. php traktuje tablice jako stos. Zauważ, że możesz używać dowolnych indeksów, czyż nie. Więc bardzo trudno byłoby sprawdzić typ tablicy (które w php przypomne są bardzo "swawolne"). Jeżeli chcesz mieć to po kolei to musisz użyć sort() lub któremuś z jej potomnych!
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
OK dzieki. Wydawalo mi sie, ze foreach automatycznie sortuje dane i wyswietla je zgodnie z indexem.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Zgadza się. To jest jesli się nie mylę model FI-FO i przyznam się, że jeśli chodzi o foreach() takie jego zachowanie jest u mnie w głowie ustawione na default
![]() Dodatkowo "na logikę" biorąc nie wydaje mi się, żeby foreach() powinno działać inaczej. -------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.07.2025 - 19:45 |