Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Iterator tablicy? Pytanie o wskaźniki do elementów
Forum PHP.pl > Forum > Przedszkole
noemail
Witam, trochę w php brakuje mi wskaźników.

Załóżmy, że dane trzymam w obiekcie w pewnej dużej tablicy, takim drzewku złożonym z mnieszych tablic i dopiero te tablice zawierają wartości.

Coś w tym stylu:

  1. $Tree = array(
  2. 'litery' => array( 'a', 'b', 'c' ),
  3. 'cyfry' => array( '1', '2', '3' ),
  4. 'imiona' => array('Zdzisiek', 'Czesiek', 'Wacek')
  5.  
  6.  
  7. //itd... itd...
  8.  
  9. );


Teraz chciałbym mieć małpki, które po gałązkach tego drzewka mogą skakać i zwywać listki.

  1. $Monkey1 = new CMonkey( 'cyfry' );
  2.  
  3. $Monkey1 ->reset();
  4.  
  5. while ( $next = $Monkey1 ->get_next() ) // 1, 2, 3
  6. {
  7. }



Problem robi się kiedy dwie małpki siadają na tej samej gałązce.

Jeśli każda ma referencję do tej samej części tablicy to operacje na tablicy za pomocą reset(), each(), next() itp... zawadzają o siebie.

A jeśli każa dostaje kopię tablicy to następuje utrata wydajności i patrząc na czas wykonania skryptu najprawdopodobniej następuje kopiowanie tablic.

Jakby były wskaźniki i nie trzeba było korzystać z reset(), each(), next() toby było ok.

A może gdzieś w php jest zaszyty jakiś mechanizm jak pozwalający to dobrze zrobić? Chodzi o jakieś iteratory które mogą łazić po jednej wspólnej złożonej strukturze danych nie powodując w żadnym momencie jej kopiowania.
Pyton_000
http://php.net/manual/en/class.arrayiterator.php questionmark.gif
noemail
ok dzieki, jakoś nie zwróciłem uwagi, bo szukałem czegoś dla zwykłych tablic, a tu trza używać ArrayObject... oby nie było to dużo wolniejsze...
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.