Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Czemu elementy tablicy nie zmianiają się?
Forum PHP.pl > Forum > Przedszkole
statek
Cześć,
czemu w poniższym kodzie wynikowa tablica pozostaje bez zmian?

  1. <?php
  2. $pa2= glob( $k1 . '/' . $k2 . '/' . $k3 . '/*/*' );
  3.                            foreach( $pa2 as $p2)
  4.                            {
  5.                            $p2=explode( '/', $p2 );
  6.                            $p2 = $p2[0] . '/' . $p2[1] . '/' . $p2[2] . '/' . $p2[3];
  7.                            echo $p2 . '<br />';
  8.                            }        
  9.                            print_r($pa2);
  10. ?>


Albo zapytam inaczej, jak zadziałać standardową funkcją na wszystkie elementy tablicy? Array_walk pozwala na użycie własnej funkcji, a takie standardowe?

Pozdrawiam.
golaod
$p2 = $p2.....
zamień na
$pa2 = $p2.....
wookieb
@golaod panie zastanów się dokładnie

@statek
  1. <?php
  2. foreach($pa2 as &$p2)
  3. ?>


W manualu o tym było. I warto przypomnieć sobie referencje.
statek
wookieb
nie rozumiem tego. Foreach i inne pętle to instrukcje będące częścią języka. Czy zasięg zmiennych jest dla nich (w nich) taki sam jak w przypadku własnych funkcji?
nospor
@statek chodzilo o referencje (&)
Jak chcesz by dane wykonywane w foreach na danym elemencie, byly widoczne tez poza foreach, to musisz uzyc referencji &. W przeciwnym wypadku foreach tworzy tylko kopie elementu i operujesz na kopii
statek
Czy można jakoś zadziałać konkretną funkcja na wszystkie elementy tablicy. Przykładowo substr( każdy element tablicy, 3)? Jak to zrobić?

Pozdrawiam.
nospor
po to wymyslono wlasnie array_walk
http://pl.php.net/manual/pl/function.array-walk.php
wookieb
Foreach operuje na kopii tablicy, dlatego konieczne jest stworzenie referencji do wartosci, jezeli chcesz ja zmieniac na oryginalnej tablicy.
Pilsener
http://pl2.php.net/manual/pl/function.array-map.php - z manuala korzystasz czasem?

Co za problem przejrzeć funkcje?
http://pl2.php.net/manual/pl/ref.array.php - na tacy wszystko jest, tylko korzystać!
golaod
@wookieb:
Wybacz moja ukochana pchła mi zmarła i jestem za bardzo rozkojarzony... Poprawię się następnym razem.
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.