Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Tablice dwuwymiarowe, czyli skrótowe odwoływanie się do list() i each()
f#a#oo
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 9.06.2011

Ostrzeżenie: (0%)
-----


Witam wszystkich pierwszym postem. Właśnie raczkuję z php, przerabiam sobie pewien podręcznik i wiedzę uzupełniam manualem, ale… nie mogę zrozumieć, dlaczego poniższy kod z podręcznika działa. Siedzę nad tym już kilkadziesiąt minut.

Przykład 1 (podręcznik).

  1. $produkty = array (array('OPO', 'Opony', 100),
  2. array('OLE', 'Olej', 10),
  3. array('SWI', 'Swiece Zaplonowe', 4));
  4.  
  5.  
  6.  
  7. for($rzad = 0; $rzad < 3; $rzad++) {
  8. while (list($klucz, $wartosc) = each($produkty[$rzad])) {
  9. echo "| $wartosc ";
  10. }
  11. echo ' |</br>';
  12. }



Chodzi mi głównie o działanie list() i each() w tabelach dwuwymiarowych.
Dlaczego po wpisaniu echo "| $wartosc "; wyświetla się cały rząd, tzn. zawartość tablicy drugiego stopnia?


W manualu (http://pl.php.net/manual/pl/function.each.php) jest:

Przykład 2.

  1. $owoce = array('a' => 'jabłko', 'b' => 'banan', 'c' => 'truskawka');
  2. reset ($owoce);
  3. while (list ($klucz, $wartosc) = each ($owoce)) {
  4. echo "$klucz => $wartosc\n";


Zawartość tablicy jest wywoływana przy pomocy dwóch zmiennych, każda po imieniu.
W wypadku tablicy dwuwymiarowej z przykładu 1 wystarczy tylko $wartosc? Po co definiowano $klucz skoro nie ma do niego odwołania? W przykładzie 1 list() wyświetla wszystko automatycznie, a w przykladzie 2 trzeba to dokładnie określać? Dlaczego?

Będę wdzięczny za pomoc.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 23.08.2025 - 18:51