[#] Praca z tablicami w php - foreach

( Ostatnio zmieniony śr., 11/06/2008 - 09:59 )
 

Odczytanie i modyfikacja tablicy „plik“

PHP posiada pewien element zwany referencją. Ogólnie rzecz biorąc jest to odnośnik do zmiennej, który zachowuje się tak, jak ona. Modyfikacja referencji powoduje także modyfikację oryginalnego elementu. Począwszy od PHP 5, referencje można używać w pętli foreach. Wystarczy poprzedzić w jej deklaracji zmienną $linia znakiem & Modyfikacja zmiennej $linia jest równoznaczna z modyfikacją aktualnego elementu w tablicy $plik, ponieważ zmienna jest takim właśnie odnośnikiem. Jeśli nie użyjemy znaku & przed nazwą zmiennej to nie zostanie ona zmodyfikowana poza naszą pętlą.

<?php
  $plik = file('plik.txt');

  foreach($plik as &$linia) {
    $linia = trim($linia).' [OK]';
  }

  print '<pre>';
  print_r($plik);
  print '</pre>';
?>

indeks == klucz

inna wersja powyższego, w której pętla foreach zwraca nam również indeks tablicy $plik:

<?php
  $plik = file('plik.txt');

  foreach($plik as $i => $linia) {
    $plik[$i] = trim($linia).' [OK]';
  }

  print '<pre>';
  print_r($plik);
  print '</pre>';
?>

Przykłady:

<?php
  /* Przykład 1: tylko wartość */

  $tablica = array(1, 2, 3, 17);

  foreach ($tablica as $wartosc) {
    print "Bieżąca wartość \$tablica: $wartosc.\n";
  }
?>
<?php
  /* Przykład 2: wartość (wyświetlamy klucz w celu zobrazowania) */

  $tablica = array(1, 2, 3, 17);

  $klucz = 0; /* tylko na potrzeby zobrazowania */

  foreach ($tablica as $wartosc) {
    print "\$tablica[$klucz] => $wartosc.\n";
    $indeks++;
  }
?>
<?php
  /* Przykład 3: klucz i wartość */

  $a = array(
    "jeden" => 1,
    "dwa" => 2,
    "trzy" => 3,
    "siedemnaście" => 17
  );

  foreach ($tablica as $klucz => $wartosc) {
    print "\$tablica[$klucz] => $wartosc.\n";
  }
?>
<?php
  /* Przykład 4: wielorozmiarowa tablica */
  $tablica = array();
  $tablica[0][0] = "a";
  $tablica[0][1] = "b";
  $tablica[1][0] = "y";
  $tablica[1][1] = "z";

  foreach ($tablica as $wartosc1) {
    foreach ($wartosc1 as $wartosc2) {
      print "$wartosc2\n";
    }
  }
?>
<?php
/* Przykład 5: dynamiczna tablica */

foreach (array(1, 2, 3, 4, 5) as $wartosc) {
    print "$wartosc\n";
}
?>

Przydatne linki:

http://pl.wikibooks.org/…kcja_foreach

http://pl.php.net/foreach

Twoja ocena: Brak Średnio: 3.7 (6 głosów)

Dodaj nową odpowiedź

Informacja:

Osoby zamieszczające wypowiedzi naruszające prawo lub prawem chronione dobra osób trzecich, mogą ponieść z tego tytułu odpowiedzialność karną lub cywilną. Upewnij się, że twoja wypowiedź nie godzi w niczyje mienie.

  • Internal paths in single or double quotes, written as "internal:node/99", for example, are replaced with the appropriate absolute URL or path. Paths to files in single or double quotes, written as "files:somefile.ext", for example, are replaced with the appropriate URL that can be used to download the file.
  • Adresy internetowe są automatycznie zamieniane w odnośniki, które można kliknąć.
  • Dozwolone znaczniki HTML: <strong> <blockquote> <code>
  • Znaki końca linii i akapitu dodawane są automatycznie.

Więcej informacji na temat formatowania

Łapirobot
Proszę odpowiedzieć
E
G
Y
z
a
u
E
3
d
g
Enter the code without spaces and pay attention to upper/lower case.