Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> foreach i nieprawidlowe odczytywanie wartosci
Seth
post 5.05.2003, 18:34:57
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

:?:
Go to the top of the page
+Quote Post
Jabol
post 5.05.2003, 18:42:46
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!
Go to the top of the page
+Quote Post
Seth
post 5.05.2003, 19:00:11
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.
Go to the top of the page
+Quote Post
scanner
post 5.05.2003, 19:02:42
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 smile.gif Nie pamiętam jak to jest w innych językach z którymi pracowałem (w zamierzchłej przeszłości szkolnej).
Dodatkowo "na logikę" biorąc nie wydaje mi się, żeby foreach() powinno działać inaczej.


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.07.2025 - 19:45