Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wypełnienie tablicy elementami - nie wpisuje wartości
Forum PHP.pl > Forum > Przedszkole
haryb
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
MWL
zamiast zmiennych $rr_2 radził bym używać tablicy np. $rr[2]
haryb
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.
MWL
no to pobaw się z pętelką ;]
haryb
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?
bulimaxiu
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. )
mrok
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. ?>
bulimaxiu
Ale z tego wychodzi pusta tablica:
  1. Array
  2. (
  3. [0] =>
  4. [1] =>
  5. [2] =>
  6. [3] =>
  7. )
melkorm
*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
haryb
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
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.