Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Tabele asocjacyjne.
Forum PHP.pl > Forum > PHP
Nerrian
Witam,
Z reguły wole sam nawet długo walczyć z problemem, ale to mnie troche przerosło...

W funkcji musze stworzyć tabele asocjacyjną i wszystko by było dobrze gdyby nie to ze nie znam jej wymiaru (za każdym razem przy wywołaniu funkcji bedzie mieć inną ilość pól), jest jakaś możliwość tworzenia komórek z etykietami, ileś razy? Dane z któych bedzie tworzona tabela, znajdują się w kilku innych..

Po 2 czy jest możliwość sprawdzenia jaką etykiete ma dana komórka tabeli?

Pozdrawiam..
Cysiaczek
Przecież w php nie musisz podawać rozmiary tablicy...
Jakie etykiety?

Lepiej pokaż kawałek kodu ; ]

Pozdrawiam
Nerrian
CYSIACZEK:
Przy tworzeniu możesz nadać etykiete i wtedy odnosząc się do wiersza nazwanego x zamiast podawąc jego numer piszesz tak:
  1. <?php
  2.  $tab['x'];
  3. ?>


Tyle że wtedy przy tworzeniu tabeli trzeba dodać etykiete tzn żeby stworzyć pole o etykiecie "x" zawierające "y" piszesz:

  1. <?php
  2. $tab=array('x' => 'y');
  3. ?>


bardzo to ułatwia życie przy większych tabelach (można odwoływać się do nazw a nie pamiętać w numery indeksowe)

tyle że ja mam ileś tam (bedzie ta wartość zmieniała się zależnie od sytuacji użycia funkcji) elementów w tablicach kilku i musze je przepisać nadając im etykiety jeśli bym miał 2 tabele tab1 i tab2 kazda po tyle samo elementów to zeby je spisać normalnie wystarczyło by:

  1. <?php
  2. $tabela=array();
  3. $x=0
  4. while(isset($tab1[$x]))
  5. {
  6.  $tabela[$x][0]=$tab1[$x];
  7.  $tabela[$x][1]=$tab2[$x]
  8.  $x++;
  9. }
  10. ?>


tyle że w moim przypadku pole $x za kazdym razem musi mieć nadaną etykiete.. i nie mam pojęcia jak zrobić zeby za kazdym razem można było pobrać etykiete z kolejnej tabeli i wpisać ją...

UDAT:
Żeby użyć foreach należy mieć tabele w która ma już etykiety i z niej przenieść a ja mam stringi w tabeli ktore mają się stać etykietami
UDAT
Piszesz strasznie mętnie, ale chyba chodzi ci o array_ merge_ recursive" title="Zobacz w manualu PHP" target="_manual albo array_combine" title="Zobacz w manualu PHP" target="_manual

Jeśli nie to podaj przykład tej operacji.
misiek172
nadal nie rozumiem w czym tkwi problem... i ogólem o co chodzi ;P :

ale do pobierania nazwy klucza w tablicy asocjacyjnej służy polecenie

key();
daniofantasy
Raz - podajesz, jako argument funkcji ilość pól i potem robisz sobie pętle, która robi taką ilość pól tablicy, jaka jest podana w argumencie - i dwa - może być ona różna - taka, jaką podasz w argumencie funkcji...

przykład:

Kod
function twoja_fukcja($ilosc_pol) {

   $twoja_tablica = array();

   for ($i=0, $y=$ilosc_pol, $i<$y, $i++) {

       $twoja_tablica[$i] = cośtam;

   }

}


i jeżeli dobrze Ciebie zrozumiałem, to powinno być po problemie... winksmiley.jpg
misiek172
bezsens... do sprawdzenia ilość pół służy polecenie count() <-> sizeof();
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.