Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Tablice
Forum PHP.pl > Forum > Przedszkole
MagnuM
Witam, mam następujący, wydaje się banalny problem z tablicą.

  1. <?php
  2. $tablica = array( 'jeden' => array( 'x' => 'iks' ) );
  3. ?>


Problem jest tego typu, że potrzebuje się do tablicy odwołać na dwa sposoby:

  1. <?php
  2. echo $tablica[0]['x']; // pierwszy
  3. echo $tablica['jeden']['x']; // drugi
  4. ?>


Niestety pierwszy sposób nijak nie chce działać :/

Pozdrawiam.
nospor
no ba tablica nie ma indexu 0, tylko ma index 'jeden'
No niestety, tak to juz jest, ze jak czegos nie ma, to sie do tego czegos nie odwolasz smile.gif
dr_bonzo
TO chyba oczywiste ze nie dziala -- bo nie ma takiego indeksu (0) w tej tablicy, mozesz to obejsc:

  1. <?php
  2. $tablica = $tablica + array_values( $tablica );
  3. ?>

i juz masz indexy integerowe dla wszystkich wartosci tablicy, ALE

  1. <?php
  2. $tablica[ 0 ] = 3;
  3. print( $tablica[ 0 ] . '<br />' );
  4. $tablica[ 'jeden' ];
  5. print( $tablica[ 'jeden' ] . '<br />' );
  6. ?>

to nie te same zmienne, tylko kopie
MagnuM
Mnie się zdawało że tworzy się jakby dodatkowy index. Dziwne ;/ To strasznie utrudnia prace ;/ Nie da się nadać temu jakoś indexu ?
mike
Cytat(MagnuM @ 2006-04-02 18:47:35)
Nie da się nadać temu jakoś indexu ?

No przecież to ma index.
O wartości (a dokładniej nazwie) jeden.

Taka jest idea tablic asocjacyjnych.
dr_bonzo
Tak to tylko w ...e.... mysql_fetch_costam zwraca podwojnie indeksowana tablice, moze cos ci sie pomylilo.
MagnuM
No więc jak mam to zrobić ? Bo chciałbym przepuścić tablicę przez pętlę. Każdy element pokolei.

  1. <?php
  2. $tablica = array( 'jeden' => array( 'x' => '10' ),
  3. 'dwa' => array( 'x' => '-5' ) );
  4.  
  5. for($a=1; $a <= count($tablica); $a++)
  6. {
  7. if( $tablica[$a]['x'] < 0 ) $tablica['jeden']['x'] = 0;
  8. }
  9. ?>
mike
A kolega słyszał o pętli foreach ?
Polecam poczytać: foreach
MagnuM
Dzięki serdeczne. Muszę się przyznać że ta sytuacja przekonała mnie o tym, że mam postępujące adhd i jak nie moge czegoś zrobić to poprostu... szkoda gadać ;p
dr_bonzo
Zamiast uzalac sie nad soba polecam rozpoczac czytanie manuala. Od poczatku smile.gif
pEbE
Czytanie manuala jest nudne lepiej poczytac fajna ksiązke, a manual to tylko wytłumaczenie jak uzywac funkcji tongue.gif
dr_bonzo
Nie kaze czytac opisu kazdej funkcji, ale poczatkowych rozdzialow: jak tworzyc tablice jak ich uzywac, itp. -- podstawy
Przejrzenie dostepnych funkcji tez sie przydaje: w pamieci ci zostaje informacja ze funckcja robiaca TO gdize istnieje i potrafisz do niej dotrzec.





PS. Jak uczylem sie php to czytalem dokladnie opisy wszystkich funkcji smile.gif
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.