Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Tabele asocjacyjne.
Nerrian
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 2.07.2007

Ostrzeżenie: (0%)
-----


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..
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Cysiaczek
post
Post #2





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




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

Lepiej pokaż kawałek kodu ; ]

Pozdrawiam
Go to the top of the page
+Quote Post
UDAT
post
Post #3





Grupa: Zarejestrowani
Postów: 442
Pomógł: 0
Dołączył: 27.12.2005

Ostrzeżenie: (0%)
-----


foreach" title="Zobacz w manualu PHP" target="_manual(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
Nerrian
post
Post #4





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 2.07.2007

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
UDAT
post
Post #5





Grupa: Zarejestrowani
Postów: 442
Pomógł: 0
Dołączył: 27.12.2005

Ostrzeżenie: (0%)
-----


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.

Ten post edytował UDAT 3.07.2007, 12:21:53
Go to the top of the page
+Quote Post
misiek172
post
Post #6





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

Ostrzeżenie: (0%)
-----


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();

Ten post edytował misiek172 3.07.2007, 16:54:41
Go to the top of the page
+Quote Post
daniofantasy
post
Post #7





Grupa: Zarejestrowani
Postów: 30
Pomógł: 1
Dołączył: 14.06.2007
Skąd: Chesterfield UK

Ostrzeżenie: (0%)
-----


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... (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
misiek172
post
Post #8





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

Ostrzeżenie: (0%)
-----


bezsens... do sprawdzenia ilość pół służy polecenie count() <-> sizeof();
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.12.2025 - 10:11