Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Foreach na wielowymiarowych tablicach
Forum PHP.pl > Forum > PHP
mimol
  1. $tab = array();
  2. $a = array('id'=>1, 'amount'=>4);
  3. $b = array('id'=>3, 'amount'=>3);
  4. $tab[] = $a;
  5. $tab[] = $b;
  6.  
  7. foreach ($tab as $st){
  8. if ($st['id'] == 3) {
  9. $st['amount']=555;
  10. }
  11.  
  12. }

Dlaczego ten kod nie działa poprawnie?
Chciałem po prostu zmienić amount na 4 dla id =3
Wiem, że w foreachu mógłbym sobie zapisywać ID dla taba i potem to zmieniać, ale wydaje mi się to mało profesjonalne,
nospor
$st to kopia wartości a nie wartosc

nie: as $st
a: as &$st

Referencja...
ano
  1. $tab = array();
  2. $a = array('id'=>1, 'amount'=>4);
  3. $b = array('id'=>3, 'amount'=>3);
  4. $tab[] = $a;
  5. $tab[] = $b;
  6.  
  7. foreach ($tab as &$st){
  8. if ($st['id'] == 3) {
  9. $st['amount']=555;
  10. }
  11.  
  12. }


Domyślnie "tablice" w php są przekazywane przez wartość. Dlatego musisz użyć operatora &, ktory spowoduje przekazanie wartości referencji.
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.