Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Wypełnienie tablicy elementami - nie wpisuje wartości
haryb
post 26.09.2008, 18:17:07
Post #1





Grupa: Zarejestrowani
Postów: 137
Pomógł: 0
Dołączył: 9.11.2004
Skąd: Gdańsk

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


Mam zmienne formatu np.
  1. <?php
  2. $xx_1=11;
  3. $xx_2=34;
  4. $rr_1=322;
  5. $rr_2=23;
  6. ....
  7. ?>


I teraz w petli chce wpisać te elementy do tablicy indeksowej
  1. <?php
  2. for($i=1;$i<3;$i++){
  3.     $tab=array(${'xx_'.$i},${'rr_'.$i});
  4. }
  5. ?>


I nie wiem dlaczego nie wchodza mi te wartości tylko tworzy sie tablica z pustymi wartościami.
A jesl w samej pętli zrobie echo ${'xx_'.$i} to wartosci normaleni wyswietla.
Probowałem też tak:
  1. <?php
  2. $tab[]=array(${'xx_'.$i},${'rr_'.$i});
  3. ..
  4. ?>

wówczas zapisuje mi tablice jakas w tablicy i wogole ogolna kaszana jest w indeksach.

Narazie rozwiązałem to łopatologicznie wpisując tak:
  1. <?php
  2. $tab[]=${'xx_'.$i};
  3. $tab[]=${'rr_'.$i};
  4. ....
  5. ?>


Tak tablica jest stworzona ok ale nie chce takiego rządku długiego robic tym bardziej ze tych zmiennych troszke jest.

p.s. Oczywiście przedstawiłem ten kod tylko symbolicznie , jest on w innej formie w aplikacji, ale idea jest ta sama wiec jak mogłem to uprościłem zapis by było latwiej znaleźć przyczyne nie zapisywania sie wartosci do tablicy.

Pozdro
haryb

Ten post edytował haryb 26.09.2008, 18:20:27
Go to the top of the page
+Quote Post
MWL
post 26.09.2008, 18:18:35
Post #2





Grupa: Zarejestrowani
Postów: 493
Pomógł: 32
Dołączył: 14.04.2008
Skąd: Lenkowski.net

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


zamiast zmiennych $rr_2 radził bym używać tablicy np. $rr[2]


--------------------
Wpadaj na mój kanał o PHP. Dużo mięsa 🥩!
Go to the top of the page
+Quote Post
haryb
post 26.09.2008, 18:21:58
Post #3





Grupa: Zarejestrowani
Postów: 137
Pomógł: 0
Dołączył: 9.11.2004
Skąd: Gdańsk

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


Zmienne niestety musza zostać w takiej formie jakiej są sa one juz wykorzystane w bardzo dużej ilości plików i zmiany formatu nie wchodza w gre.
Go to the top of the page
+Quote Post
MWL
post 26.09.2008, 18:23:31
Post #4





Grupa: Zarejestrowani
Postów: 493
Pomógł: 32
Dołączył: 14.04.2008
Skąd: Lenkowski.net

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


no to pobaw się z pętelką ;]


--------------------
Wpadaj na mój kanał o PHP. Dużo mięsa 🥩!
Go to the top of the page
+Quote Post
haryb
post 26.09.2008, 18:25:47
Post #5





Grupa: Zarejestrowani
Postów: 137
Pomógł: 0
Dołączył: 9.11.2004
Skąd: Gdańsk

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


Nie ma problemu z pętla tylko zapisem do tablicy!
Wie ktoś dlaczego sie nie wpisują te wartości do tablicy? i jak to obejść w inny sposób niż ja zrobiłem?
Go to the top of the page
+Quote Post
bulimaxiu
post 26.09.2008, 18:48:15
Post #6





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 18.06.2008
Skąd: Reda

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


Cóż, sprawdziłem na PHP5 Twój kod i wyświetla się ładna tablica:
  1. Array
  2. (
  3. [0] => 34
  4. [1] => 23
  5. )

tylko że raczej powinieneś użyć nieco zmodyfikowanej instrukcji z wykorzystaniem array_push. Proponuję
  1. <?php
  2. $xx_1=11;
  3. $xx_2=34;
  4. $rr_1=322;
  5. $rr_2=23;
  6.  
  7. $tab = array();
  8.  
  9. for($i=1;$i<3;$i++){
  10.    array_push($tab, array(${'xx_'.$i},${'rr_'.$i}));
  11. }
  12.  
  13. echo "<pre>";
  14. print_r ($tab);
  15. echo "</pre>";
  16. ?>

w wyniku czego wychodzi
  1. Array
  2. (
  3. [0] => Array
  4. (
  5. [0] => 11
  6. [1] => 322
  7. )
  8.  
  9. [1] => Array
  10. (
  11. [0] => 34
  12. [1] => 23
  13. )
  14.  
  15. )
Go to the top of the page
+Quote Post
mrok
post 26.09.2008, 18:48:16
Post #7





Grupa: Zarejestrowani
Postów: 258
Pomógł: 17
Dołączył: 22.05.2007

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


nie jestem pewien czy dobrze zrozumiałem problem ?
ale moze w ten sposob

  1. <?php
  2. for($i=1;$i<3;$i++){
  3.    $tab[]=${'xx_'.$i};
  4.    $tab[]=${'rr_'.$i};
  5. }
  6. print_r ($tab);
  7. ?>


Ten post edytował mrok 26.09.2008, 18:48:51


--------------------
Go to the top of the page
+Quote Post
bulimaxiu
post 26.09.2008, 18:52:18
Post #8





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 18.06.2008
Skąd: Reda

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


Ale z tego wychodzi pusta tablica:
  1. Array
  2. (
  3. [0] =>
  4. [1] =>
  5. [2] =>
  6. [3] =>
  7. )
Go to the top of the page
+Quote Post
melkorm
post 26.09.2008, 18:53:14
Post #9





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


*edited*

  1. <?php
  2. for($i=1;$i<3;$i++){
  3.   $tab[]= ${xx_.$i};
  4.   $tab[]= ${rr_.$i};
  5. }
  6. ?>

=> poprawione kolegi winksmiley.jpg => chociaż obydwa rozwiązania działają u mnie winksmiley.jpg
oO' ;p

Woops biggrin.gif Kolega wyżej ma to samo a ja nawet z błędem, tamto powinno działać winksmiley.jpg

Ten post edytował melkorm 26.09.2008, 18:58:52


--------------------
Go to the top of the page
+Quote Post
haryb
post 26.09.2008, 19:17:54
Post #10





Grupa: Zarejestrowani
Postów: 137
Pomógł: 0
Dołączył: 9.11.2004
Skąd: Gdańsk

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


Serwer jest postawiony na php4 i to tez może mieć znaczenie, ale posprawdzam.

Te powyższe z rozwiązanie to tak samo jak pisałem w pierwszym poscie działąją ale załóżmy ze tych zmiennych jest z 30, nie chce robic takeigo dlugiego ciagu i zawsze powielac nazwa_tablicy[]=... dlatego bardziej bylo by stosowane rozwiązanie nazwa_tablicy = array(zmienna,zmienna...) ale nie dziala u mnie tak, możliwe ze pod php4 to nie ruszy.

pozdro
haryb

Ten post edytował haryb 26.09.2008, 19:49:39
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 7.07.2025 - 23:34