Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Tablice wielowymiarowe - dynamicznie
Asmox
post
Post #1





Grupa: Zarejestrowani
Postów: 359
Pomógł: 12
Dołączył: 16.01.2009

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


Witam,
chciałem zrobić tablice wymiarowe generowane dynamicznie przez pętlę. Wygląda ona tak:
  1. <?php
  2. function tematy_tablica() {
  3. $query = "SELECT * FROM tematy;";
  4. $make = mysql_query($query);
  5. $i = 0;
  6. while ($wynik = mysql_fetch_row($make)) {
  7. $tablica[$i][0] = $wynik[2];
  8. $tablica[$i][1] = $wynik[3];
  9. $i++;
  10. }
  11. return $tablica;
  12. }
  13. ?>

Można łatwo zobaczyć, że "pierwszy" wymiar tablicy musi być tworzony przez zmienną, która jest zwiększana po każdym kółku pętli. Musiałem tak zrobić, ponieważ:
  1. <?php
  2. $tablica[][0] = $wynik[2];
  3. $tablica[][1] = $wynik[3];
  4. ?>

Dawało błędy. Podejrzewam, że na przykład przy pierwszym zakręceniu tej pętli zmienne wyglądały w ten sposób:
  1. <?php
  2. $tablica[0][0] = $wynik[2];
  3. $tablica[1][1] = $wynik[3];
  4. ?>

Czy jest jakaś możliwość dynamicznego generowania tablic, ale bez użycia tej zmiennej $i ? Nie wiem dlaczego, ale bardzo mi się ona nie podoba. Pewnie dlatego, że zmienne z liczbą bardziej pasują do pętli for. Więc jeśli byłby sposób, żeby usunąć tą zmienną z pętli....
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
rzymek01
post
Post #2





Grupa: Zarejestrowani
Postów: 592
Pomógł: 62
Dołączył: 3.08.2006

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


mlattari, po co tyle petli?

Asmox,
a pętla for to gorsza? (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)

tak wygląda pętla nieskończona:
  1. <?php
  2. for ( ; ; );
  3. ?>


tak wygląda nieskończona pętla ale z licznikiem:
  1. <?php
  2. for ($i = 0; ; ++$i);
  3. ?>


a tak wygląda pętla w sam raz dla ciebie:
  1. <?php
  2. for ($i = 0; $wynik = mysql_fetch_row($make); ++$i)
  3. ?>


a tak wygląda twoje rozwiązanie:
  1. <?php
  2. //zapytanie sql, utowrzenie zmiennej $make
  3.  
  4. $tablica = array();
  5. for ($i = 0; $wynik = mysql_fetch_row($make); $tablica[$i] = $wynik, ++$i);
  6. ?>


interesujące?
Go to the top of the page
+Quote Post

Posty w temacie


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: 26.12.2025 - 21:21