Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem ze zrozumieniem działania pętli w PHP
Forum PHP.pl > Forum > Przedszkole
gwiazdka_root
Witam serdecznie smile.gif

Uczę się PHP i mam problem z pętlami. Wiem, że może się wam to wydac niedorzeczne, ale po prostu nie potrafię ich zrozumieć. Teorię i składnię znam, ale nie potrafię wykorzystać tego w praktyce i poegam na najprostszych zadaniach. Nie wiem w czym dokładnie tkwi problem. Może w tym, że nie rozumiem zasad ich działania, nie wiem jak zagnieżdżać jedne w drugich. Z if nie mam takiego problemu.
Prosze o jakieś rady i wskazówki. Najlepiej jakby mi ktoś to bardzo łopatologicznie wytłumaczył. Posiadam książki, przeczesywałam internet, ale wszytsko na nic, jeżeli ktoś mi tego nie wytłumaczy ludzkim językiem.
Dlatego zwracam się do was - starych wyjadaczy z prośba o pomoc.

Pozdrawiam,
Kasia
CuteOne
Pętle to najzwyczajniej na świecie powtarzanie n+1 razy tego co znajduje się w ciele pętli (pomiędzy klamrami { }). Powtarzana jest aż do momentu spełnienia warunku
  1. $a = false;
  2. $i = 0;
  3.  
  4. while($a === false) { // powtarzaj jeżeli $a jest równe fałszowi
  5.  
  6. echo $i.'<br>';
  7.  
  8. if($i>5) {
  9. $a=true;
  10. }
  11.  
  12. $i++;
  13. }
  14.  
  15.  
  16. for($i=0; $i<=5; $i++) { //powtarzaj do puki $i będzie równe 5
  17.  
  18. echo $i."<br>";
  19. }
  20.  
  21.  
  22. $array = array('a', 'b', 'c');
  23.  
  24. foreach($array as $klucz => $wartosc) { // powtarzaj tyle razy ile tablica posiada elementów + zapisz do zmiennej $klucz - index tablicy, $wartosc - wartość pod danym kluczem
  25.  
  26. echo $klucz.' -> '.$wartosc.'<br>';
  27. }


pętla w pętli
  1. for($i=1; $i<=10; $i++) {
  2.  
  3. for($x=1; $x<=10; $x++) {
  4.  
  5. echo $i.' - '.$x.'<br>';
  6. }
  7. }
gwiazdka_root
Dziękuję za szybką odpowiedź.

Chciałabym sie dowiezieć, czy dobrze zrozumiałam napisany przez ciebie kod....

Zmienna a jest fałszywa. Zmienna i jest równa 0.
Wykonuj pętlę, dopóki a jest równe fałszowi.
Wyświetl zmienną i, która równa jest 0.
Jeżeli 0 jest większe od 5 to zmienna a jest prawdziwa, poczym zwiększ jej wartość o jeden.

następny przykład to wypisanie serii liczb.
$i - 0 i jeżeli jest <= 5 to wyświetl ją zwiększając o jeden.

Tablica ma wartości a,b,c.
Dla każdego elementu z tablicy przypisany jest klucz i wartość
Wyświetl zatem klucz oraz wartość.

Następny przykład to odliczanie od 1 -10.
Wyświetli się ciąg znaków ' - ' dziesięc razy.

Mam nadzieję, że dobrze zinterpretowałam, jeśli nie proszę o wskazanie moich błędów.
CuteOne
1. Dobrze
2. $i jest równe 0; powtarzaj do puki $i będzie mniejsze lub równe 5; zwiększ $i o jeden. W ciele pętli wyświetl $i
3. dobrze
4. wynik powinien wyglądać tak
1 -> 1
1 -> 2
1 -> 3
...
10 -> 1
10 -> 2
..

w sumie ciało drugiej pętli wykona się 100 razy (10 z pierwszej * 10 z drugiej)
Night123
Oke moja kolej smile.gif

for
Zmienna $i wynosi 0, a ty potrzebujesz wyniku 4

mogłaś napisać to w if, ale do działania w którym to klient (użytkownik) coś podaje i to co poda trzeba zwiększyć może pojawić się błąd, bo nie wiesz ile musisz powiększać itd i tu masz pętle for

postać:

Kod
for (wyrażenie_inicjujące; wyrażenie_warunkowe; wyrażenie iteracyjne)

  instrukcja;


INSTRUKCJA:

wyrażenie_inicjujące — wyrażenie, którego zadaniem jest zwykle ustalenie warunku początkowego (warunków początkowych) pętli;

wyrażenie_warunkowe — od jego wartości (true lub false) zależy, czy pętla będzie wykonywana dalej, czy też zostanie zakończona;

wyrażenie_iteracyjne — zwykle jest to instrukcja modyfikująca licznik pętli, czyli wpływająca na kontynuację lub zakończenie pętli (licznik pętli jest często sprawdzany w wyrażeniu_warunkowym);

instrukcja — instrukcja (prosta lub złożona) stanowiąca tzw. ciało pętli — jest to kod, który będzie powtarzany w pętli.



czyli

wyrażenie_inicjujące - to nasze $i = 0

wyrażenie_warunkowe - to to kiedy się skończy pętla czyli $i = 4 skończy się gdy $i będzie równe 4

wyrażenie_iteracyjne - co się ma dziać dopóki nie ma tego 4


przykład

  1. for ($i = 0; $i = 4; $i++) {
  2.  
  3. echo "$i";


coś takiego wink.gif powinno wyjść 4

While

To też jest łatwe wink.gif używasz tego wtedy kiedy nie wiesz lub nie chcesz wiedzieć ile razy ma coś się powtórzyć ma być tylko to co chcesz.

Postać
Kod
while (warunek)

  instrukcja;



pętla while wykonuje się tak długo, jak długo warunek jest spełniony.

czyli przykładzik

  1.  
  2. $i = 0;
  3.  
  4. while ($i = 4) {
  5.  
  6. echo "$i";
  7.  
  8. }


i powinno być 4 będzie $i się powiększało aż będzie równe 4 smile.gif

do…while

Pętla do…while jest modyfikacją pętli while. Postać jest ta sama tylko warunek jest sprawdzany ciągle po wykonaniu ciała.


Postać:
Kod
do {

  instrukcja;

} while (warunek);



czyli

  1. $i = 0;
  2.  
  3. do {
  4.  
  5. echo "$i";
  6.  
  7. } while ($i = 4);



Będzie sprawdzało się co każde wykonanie ciała pętli czy jest już odpowiedni wynik.

Pisałem na szybko może się przyda jak nic nie rozumiesz, bo napisałem bez ładu i składu to sorki
gwiazdka_root
A mógłbyś mi wytłumaczyć dlaczego w zagniżdżeniu wykonywane jest mnożenie 10 * 10?

Cytat(Night123 @ 31.01.2013, 09:07:14 ) *
Oke moja kolej smile.gif

for
Zmienna $i wynosi 0, a ty potrzebujesz wyniku 4

mogłaś napisać to w if, ale do działania w którym to klient (użytkownik) coś podaje i to co poda trzeba zwiększyć może pojawić się błąd, bo nie wiesz ile musisz powiększać itd i tu masz pętle for

postać:

Kod
for (wyrażenie_inicjujące; wyrażenie_warunkowe; wyrażenie iteracyjne)

  instrukcja;


INSTRUKCJA:

wyrażenie_inicjujące — wyrażenie, którego zadaniem jest zwykle ustalenie warunku początkowego (warunków początkowych) pętli;

wyrażenie_warunkowe — od jego wartości (true lub false) zależy, czy pętla będzie wykonywana dalej, czy też zostanie zakończona;

wyrażenie_iteracyjne — zwykle jest to instrukcja modyfikująca licznik pętli, czyli wpływająca na kontynuację lub zakończenie pętli (licznik pętli jest często sprawdzany w wyrażeniu_warunkowym);

instrukcja — instrukcja (prosta lub złożona) stanowiąca tzw. ciało pętli — jest to kod, który będzie powtarzany w pętli.



czyli

wyrażenie_inicjujące - to nasze $i = 0

wyrażenie_warunkowe - to to kiedy się skończy pętla czyli $i = 4 skończy się gdy $i będzie równe 4

wyrażenie_iteracyjne - co się ma dziać dopóki nie ma tego 4


przykład

  1. for ($i = 0; $i = 4; $i++) {
  2.  
  3. echo "$i";


coś takiego wink.gif powinno wyjść 4



Czyli mam rozumieć, że pętla zaczyna działać dopiero po przejściu przez wyrażenie warunkowe, potem wykonywane sa instrukcje, a na zakończenie wykonywane jest wyrażenie iteracyjne?

Jeśli chodzi o while i do... while to różnica jest tylko w tym, że w do... while warunki są sprawdzane na początku?




Chodzi mi też głównie o to, że nie potrafię sobie poradzić z naprawdę prostymi zadaniami takimi jak:

***Napisac program wyswietlajacy losowe liczby z przedzialu 0-10 do momentu az ich suma wyniesie 50.***

***Napisac program wyswietlajacy 5 losowych liczb z przedzialu od 0 do 100 i podajacy ich sume.***

***Napiszemy skrypt, który wyswietli X ciągów liczb od zera do dwudziestu (gdzie X będzie wyznaczała zmienna $ilosc). Jeśli $ilosc będzie mniejsza od zera, wyświetlimy X ciągów od dwudziestu do zera (X oznaczymy jako "- $ilość"). Jeżeli $ilosc będzie równa 0, wyświetlimy komunikat o braku ciągów.***

***Stosując pętle while, warunek if i modulo napisz kod wypisujący wszystkie liczby parzyste od 0 do 1000 włącznie.***

***Napisz kod stosując pętlę do..while, który wyświeli napisy: liczba1 liczba2 liczba3 liczba4 itd. ,aż do liczba456.***


***Wyświetl wszystkie liczby nie podzielne przez 3 z zakresu od 799 do 841 stosując continue i break.***

Pomimo, że pod ćwiczeniami z linku widnieją kody, to i tak po przeanalizowaniu, nie potrafię sama tego napisać

http://gajdaw.pl/php/petla-for-cwiczenia/p3.html


Nie chodzi mi o to, żebyście napisali za mnie te zadania, tylko żebyście mogli mi je wytłumaczyć w sposób przystępny i zrozumiały, tak, żebym sama mogła to zrobić i zrozumieć.
Kilku krotnie przymierzałam się do ich wykonania, lecz nie mam pojęcia czemu nie potrafię ich wykonać mimo iż znam składnie poleceń... sad.gif
CuteOne
to nie mnożenie smile.gif

pętla pierwsza wykona się 10 razy

pętla nr. 2 wykona się 10 razy

za każdym powtórzeniem pętli nr. 1 wykona się 10 powtórzeń pętli nr. 2 w sumie 100 razy (10 pierwszej * 10 drugiej)


te zadania są dość nieżyciowe smile.gif więc, może podam takie, z których sam kiedyś się uczyłem

1. za pomocą pętli for() wypisz wszystkie elementy tablicy (podpowiedź, użyj count())
  1. $array = array(1,2,3,4,5,6,7);


2. za pomocą pętli for() stwórz tablicę, która będzie posiadała wszystkie wartości z przedziału 0-10 (podpowiedź $array[$klucz] = $wartość)

To samo zrób używając pętli foreach() i while()
!*!
Uzupełnienie tego co opisali wyżej.
pyro
  1.  
  2. // Zwykła pętla
  3.  
  4. for($i=1; $i<=10; $i++) // Zaczynając od $i równego 1 ($i=1), zwiększaj $i o jeden ($i++) tak długo, jak $i jest mniejsze lub równe 10 ($i <= 10)
  5. {
  6. echo $i.'<br />'; // Wyświetl aktualne $i
  7. }
  8.  
  9. echo '<br /><br /><br />';
  10.  
  11. // Pętla zagnieżdzona
  12.  
  13. for($i=1; $i<=10; $i++) // Zaczynając od $i równego 1 ($i=1), zwiększaj $i o jeden ($i++) tak długo, jak $i jest mniejsze lub równe 10 ($i <= 10)
  14. {
  15. echo $i.'<br />'; // Wyświetl aktualne $i
  16.  
  17. for($e=10; $e>=0; $e--) // Zaczynając od $e równego 10 ($e=10), zmniejszaj $e o jeden ($e--) tak długo, jak $e jest większe lub równe 0 ($e >= 0)
  18. {
  19. echo '<span style="color: red;">'.$e.'</span><br />';
  20. }
  21.  
  22. }
  23.  


Przeczytaj kod i jego komentarze, uruchom cały ten kod a zrozumiesz. Prościej chyba się nie da.
phpion
@Night123:
Zanim zaczniesz uczyć innych sugeruję najpierw douczyć siebie. Poczytaj czym jest drugie wyrażenie w forze bo na pewno nie tym co napisałeś. Poczytaj o różnicach między = a ==. Dodatkowo radzę zwiększać liczniki w pętlach. Poza tym Twoje przykłady zapętlą się w nieskończoność.
pyro
// ADD

Cytat(gwiazdka_root @ 31.01.2013, 08:26:03 ) *
Kasia


Cytat
http://olgarojek.daportfolio.com/


Coś tu brzydko pachnie.
gwiazdka_root
phpion to ja już nic nie rozumiem.... piszesz do kolegi:

Zanim zaczniesz uczyć innych sugeruję najpierw douczyć siebie. Poczytaj czym jest drugie wyrażenie w forze bo na pewno nie tym co napisałeś. Poczytaj o różnicach między = a ==. Dodatkowo radzę zwiększać liczniki w pętlach. Poza tym Twoje przykłady zapętlą się w nieskończoność.

W końcu ja sama się zapętliłam i nie wiem co robć... :



Cytat(pyro @ 31.01.2013, 10:14:39 ) *
// ADD





Coś tu brzydko pachnie.



Na drugie mam Kasia, a Olga mi się nie podoba, ale niestety muszę go formalnie używać... Dlatego wszędzie dzie się da i wszystcy mówią do mnie Kasia smile.gif



Cytat(!*! @ 31.01.2013, 10:02:21 ) *
Uzupełnienie tego co opisali wyżej.



Ten materiał także już przerabiałam... Nie wiem co jest ze mną nie tak, że pomimo znajomości składni, nie potrafię jej wprowadzić w życie. Łączyć, dopasowywać odpowiednich instrukcji do zadań.
Ślęczę teraz nad zadaniami od kolegi CuteOne i ni hu hu nie wiem jak to zrobić.... z pierwszego wyszło mi coś takowego:

  1. <?php
  2.  
  3. $array = array(1,2,3,4,5,6,7,);
  4.  
  5. for($i=0; $i<=7; $i++)
  6. {
  7. $wynik = count ($array);
  8. echo $i."<br/>;
  9.  
  10. }
  11. ?>


Według localhosta wyszło tak:

1
2
3
4
5
6
7

I chyba koledze o to właśnie chodziło (mam nadzieję)

CuteOne
1. Manual twoim przyjacielem - count()
2. Zadanie jest poprawnie wykonane ale co gdy nie znasz ilości elementów tablicy?

  1. $array = array(1,2,3,4,5...);
  2. $cnt = count($array);
  3.  
  4. for($i=0; $i<=$cnt; $i++) {
  5.  
  6. echo $i.' '.$array[$i].'<br>';
  7. }


teraz wykonaj to samo dla pętli foreach i while. Na monitorze ma się wyświetlić klucz i wartość pod danym kluczem (tak jak w powyższym przykładzie).


Jak już ogarniesz powyższe zadanie to przejdź do zagnieżdżeń pętli w pętli np. mam tablicę wielowymiarową
  1. $array = array(
  2. 'tak' => array('wiem', 'wiedzą'),
  3. 'nie' => array('patrz', 'teraz'),
  4. 'aha' => 'ok'
  5. );


Zadanie to wyrzucić na ekran wszystkie wartości z tej tablicy za pomocą pętli
podpowiedź-aby sprawdzić czy dana wartość jest tablicą is_array()
pyro
Blisko, ale wywołaj jeszcze taki kod:

  1. $array = array(1,2,3,4,5,6,7);
  2.  
  3. foreach($array as $key=>$val)
  4. {
  5. echo $key.' => '.$val.'<br />';
  6. }
  7.  


I zobacz jak wyglądają klucze w tej tablicy.
gwiazdka_root
Cytat(CuteOne @ 31.01.2013, 11:18:53 ) *
teraz wykonaj to samo dla pętli foreach i while. Na monitorze ma się wyświetlić klucz i wartość pod danym kluczem (tak jak w powyższym przykładzie).




Z foreach mi wyszło :

  1. <?php
  2.  
  3. //4.
  4.  
  5. $tab = array(1,2,3,4,5,6,7);
  6. foreach($tab as $key => $value)
  7. {
  8. echo "tab[$key] = $value </br>";
  9. };
  10.  
  11.  
  12. ?>


tab[0] = 1
tab[1] = 2
tab[2] = 3
tab[3] = 4
tab[4] = 5
tab[5] = 6
tab[6] = 7


Ale z while mam już problem i nie potrafię do tego dojść....

  1. <?php
  2.  
  3. //5.
  4.  
  5. $tab = array(1,2,3,4,5,6,7);
  6. while($tab <=7)
  7. {
  8. echo "tablica ma wartości[tab = $tab]";
  9. echo "<br/>";
  10. $tab++;
  11. }
  12. ?>


Aby tego było mało próbowałam zrobić jeszcze jedno ćwiczenie, ale wyskakuje mi błąd, że zmiene $key i $value sa niezdefiniowane... sad.gif

  1. <?php
  2.  
  3. //2. za pomocą pętli for() stwórz tablicę, która będzie posiadała wszystkie wartości z przedziału 0-10 (podpowiedź $array[$klucz] = $wartość)
  4.  
  5. $array = array(0,1,2,3,4,5,6,7,8,9,10);
  6.  
  7. for($i=0; $i<=10; $i++)
  8. {
  9. $array[$key] = $value;
  10. echo $key. "wartosci tablicy" . $value."<br/>";
  11. }
  12. ?>
CuteOne
Pętle "działają" do puki jest spełniony warunek. W while masz podstawowy błąd - wykonaj pętle jeżeli tablica jest mniejsza od 7.

  1. $array = array(0,1,2,3,4,5,6);
  2. $cnt = count($array)-1; // indeksy w tablicach zaczynają się od 0, count natomiast zwraca ilość elementów począwszy od 1 ( stąd -1 )
  3. $i = 0;
  4.  
  5. while($i <= $cnt) {
  6.  
  7. echo $i.' '.$array[$i];
  8. $i++;
  9. }


Co do pętli for().. odpowiedź jest dość prosta - nie masz nigdzie zadeklarowanej zmiennej $key i $value. W tym wypadku kluczem jest $i a wartością $array[$i]
  1. $array = array(0,1,2,3,4,5,6,7,8,9,10);
  2.  
  3. for($i=0; $i<=10; $i++)
  4. {
  5. echo $i. "wartosci tablicy" . $array[$i]."<br/>";
  6. }



Myślę, że dobrze ci idzie i niedługo pojmiesz sens pętli a gdy do tego dojdzie rozwiąż to zadanie

Jasio posiada tablicę wielowymiarową
  1. $array = array(
  2. 'ssak' => array('wieloryb', 'kukułka', 'nietoperz'),
  3. 'ptak' => array('bocian', 'aligator', 'struś', 'kukułka')
  4. );

zadaniem Jasia jest usunąć zwierzęta nie pasujące do danego zbioru. Ma to wykonać za pomocą zagnieżdżonych pętli foreach() a następnie wyświetlić wynik działania w kolejnych zagnieżdżonych pętlach

Do usunięcia używamy unset()
gwiazdka_root
Próbowała sobie poradzić tym zadaniem, które wcześniej mi podałeś, lecz kombinowałam na wszelkie sposoby, a wyciągnąć wartości się nie udało... sad.gif

  1. <?php
  2.  
  3. //6. Zadanie to wyrzucić na ekran wszystkie wartości z tej tablicy za pomocą pętli podpowiedź-aby sprawdzić czy dana wartość jest tablicą is_array()
  4.  
  5. echo "ZADANIE SZOSTE<br/><br/>";
  6.  
  7. $tablica = array(
  8. 'tak' => array('wiem', 'wiedza'),
  9. 'nie' => array('patrz', 'teraz'),
  10. 'aha' => 'ok'
  11. );
  12.  
  13. if (!is_array($tablica))
  14. {
  15. return false;
  16. }
  17.  
  18. foreach($tablica as $key => $value)
  19. {
  20. echo $key.' -> '.$value.'<br>';
  21.  
  22. }
  23. for($i=0;$i<count($value); $i++)
  24. {
  25. echo $value[$i]."<br/>";
  26. }
  27.  
  28. ?>


Niestety wyszło tak:

tak -> Array
nie -> Array
aha -> ok
o


Coś mi się wydaje, że zbytnio nie rozumiem konstrukcji tej tablicy.
!*!
  1. $tablica = array(
  2. 'tak' => array('wiem', 'wiedza'),
  3. 'nie' => array('patrz', 'teraz'),
  4. 'aha' => 'ok'
  5. );
  6.  
  7.  
  8. if(is_array($tablica))
  9. {
  10. foreach($tablica as $key => $value)
  11. {
  12. echo '<div style=color:red>'.$key.'</div>';
  13. if(is_array($value))
  14. {
  15. print_r($value);
  16. }
  17. else
  18. {
  19. echo $value.'</br>';
  20. }
  21. }
  22. }
  23. else
  24. {
  25. echo 'to nie jest tablica.';
  26. }
  27.  


Jeśli chcesz wyświetlić zawartość tablicy, gdy echo wyświetla Array, użyj print_r
gwiazdka_root
Teraz już zupełnie zgłupiałam withstupidsmiley.gif

Wyszło mi coś takiego:
tak
Array ( [0] => wiem [1] => wiedza ) nie
Array ( [0] => patrz [1] => teraz ) aha
ok


Czy mogłabym poprosić o analize tego kodu? Myślałam, że trzeba umieścić w nim dwie pętle... :/
!*!
I dobrze Ci wyszło. Podobnie jak w przypadku Twojego kodu jest ok, poza tym że return był zbędny, a jak już to nie w tym miejscu.

  1. if(is_array($tablica)) // sprawdzasz czy zmienna $tablica to faktycznie tablica
  2. {
  3. foreach($tablica as $key => $value) // pętla, tworzysz zmienne wewnątrz tylko dla niej $key i $value
  4. {
  5. echo '<div style=color:red>'.$key.'</div>'; // wyświetlasz klucz tablicy
  6. if(is_array($value)) // sprawdzacz czy wartość klucza to tablica
  7. {
  8. print_r($value); // wyświetlasz zawartość klucza, jak chcesz się odwołać do dajesz echo $value[0] lub $value[1] itd.
  9. }
  10. else
  11. {
  12. echo $value.'</br>'; // wyświetlasz wartość jeśli nie jest tablicą
  13. }
  14. }
  15. }
  16. else
  17. {
  18. echo 'to nie jest tablica.'; //komunikat gdy zmienna to nie tablica
  19. }


A i wersja z pętlą która wyświetla zawartość jeśli jest tablicą.

  1. if(is_array($tablica)) // sprawdzasz czy zmienna $tablica to faktycznie tablica
  2. {
  3. foreach($tablica as $key => $value) // pętla, tworzysz zmienne wewnątrz tylko dla niej $key i $value
  4. {
  5. echo '<div style=color:red>key: '.$key.'</div>'; // wyświetlasz klucz tablicy
  6. if(is_array($value)) // sprawdzacz czy wartość klucza to tablica
  7. {
  8. print_r($value); // wyświetlasz zawartość klucza, jak chcesz się odwołać do dajesz echo $value[0] lub $value[1] itd.
  9.  
  10. foreach($value as $key) // nowa pętla dla wartości tej poprzedniej
  11. {
  12. echo '<div style=color:green>value: '.$key.'</div>'; // wyświetlenie wartości jeden po drugim
  13. }
  14. }
  15. else
  16. {
  17. echo '<div style=color:green>value: '.$value.'</div>'; // wyświetlasz wartość jeśli nie jest tablicą
  18. }
  19. }
  20. }


Otrzymujesz coś takiego:

key: tak
Array ( [0] => wiem [1] => wiedza )
value: wiem
value: wiedza
key: nie
Array ( [0] => patrz [1] => teraz )
value: patrz
value: teraz

key: aha
value: ok
gwiazdka_root
Cytat
Jeśli chcesz wyświetlić zawartość tablicy, gdy echo wyświetla Array, użyj print_r


Mógłbyś mi wytłumaczyć dlaczego tylko jedno print_r jest w użyciu, a reszta do wyświetlania to echo?

Przepraszam za tyle banalnych pytań, ale naprawdę zależy mi żeby to zrozumieć i się nauczyć...
CuteOne
  1. $tablica = array('tak'=>'hej', 'nie'=>array('wiara'=>'brak'), 'bóg');
  2.  
  3. // Pokaż całą tablicę
  4. print_r($tablica);
  5.  
  6. // Pokaż to co znajduje się pod kluczem 'tak'
  7. print_r($tablica['tak']);
  8.  
  9. // Próba wyświetlenia tablicy za pomocą echo
  10. echo $tablica; //zwróci Array
  11. echo $tablica['tak']; zwróci hej ponieważ wartością dla klucza 'tak' jest zwykły tekst (tzw. string)
  12. echo $tablica['nie']; zwroci Array ponieważ wartością dla klucza 'nie' jest tablica
  13. // poprawnie
  14. print_r($tablica['nie']);


Wszystko rozbija się o to aby w zagnieżdżonych pętlach wiedzieć co jest tablicą a co stringiem. Stąd kolega wyżej sprawdzał to za pomocą funkcji is_array()

Hmm, może zamiast dalej drążyć pętle poucz się czegoś innego? A do pętli wróć podczas nauki obsługi baz danych gdzie często będziesz z nich korzystała

W razie pytań jesteśmy do usług wink.gif
gwiazdka_root
Dziękuję to mi wiele wyjaśniło. A pętle i tablice musze załapać, bo to sa podstawy. Bez programowania strukturalnego do obiektówki nie przejdę niestety. A na zajęciach baz danych jeszcze nie mieliśmy. Na razie zaznajamiamy się z zapytaniami SQL... Wiec chcac czy nie chcac musze nauczyc sie podstaw bo bez tego ani rusz, a ksiazki sa takim jezykiem napisane, ze szkoda gadać... :-/
!*!
http://phpkurs.pl/ - stary kurs, ale wyjaśnia trochę więcej niż ten z wiki.W dziale HP tu na forum był temat o złych praktykach, warto przeczytać wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.