Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] przekształcenie tablicy
Forum PHP.pl > Forum > Przedszkole
maciu
mam taką tablicę
  1. array (
  2. [user] => Array
  3. (
  4. [0] => Array
  5. (
  6. [imie] => rysio
  7. [nazwisko] => rysio
  8. )
  9.  
  10. [1] => Array
  11. (
  12. [imie] => gutek
  13. [nazwisko] => gutek
  14.  
  15. )
  16.  
  17. [dane] => Array
  18. (
  19. [wartosc] => jakas wartosc
  20.  
  21. )
  22. )
  23. )


i teraz chciałbym tą tablicę przekształcić tak:
  1. array (
  2. [user] => Array
  3. (
  4. [0] => Array
  5. (
  6. [imie] => rysio
  7. [nazwisko] => rysio
  8. )
  9.  
  10. [1] => Array
  11. (
  12. [imie] => gutek
  13. [nazwisko] => gutek
  14.  
  15. )
  16. )
  17. [dane] => Array
  18. (
  19. [wartosc] => jakas wartosc
  20. )
  21. )


czyli, żeby indeks dane "wyszedł" z indeksu user
mike
  1. <?php
  2.  
  3. $arrTab = array(); // Twoja tablica
  4.  
  5. $arrTab[ 'dane' ] = $arrTab[ 'user' ][ 'dane' ];
  6. unset( $arrTab[ 'user' ][ 'dane' ] );
  7.  
  8. ?>


Jeśli chciałbyś ten proces zautomatyzować dla róznych tablic, musisz to robić w pętli.
maciu
hmm testowałeś ten kod? Bo u mnie nie ma zmian.
mike
Cytat(maciu @ 6.08.2006, 13:22 ) *
hmm testowałeś ten kod? Bo u mnie nie ma zmian.

Mi tam wszystko działa tongue.gif

  1. <pre><?php
  2.  
  3. $arrTab = array();
  4. $arrTab[ 'user' ][ 0 ][ 'imie' ]  = 'rysio';
  5. $arrTab[ 'user' ][ 0 ][ 'nazwisko' ] = 'rysio';
  6.  
  7. $arrTab[ 'user' ][ 1 ][ 'imie' ]  = 'gutek';
  8. $arrTab[ 'user' ][ 1 ][ 'nazwisko' ] = 'gutek';
  9.  
  10. $arrTab[ 'user' ][ 'dane' ][ 'wartosc' ] = 'jakas wartosc';
  11.  
  12. print_r( $arrTab );
  13.  
  14. $arrTab[ 'dane' ] = $arrTab[ 'user' ][ 'dane' ];
  15. unset( $arrTab[ 'user' ][ 'dane' ] );
  16.  
  17. print_r( $arrTab );
  18.  
  19. ?></pre>


P.S.
Przenoszę z php na Przedszkole.
Toż to same podstawy są.
MagnuM
To co napisałeś mike zwróci:
  1. array (
  2. [user] => Array
  3. (
  4. [0] => Array
  5. (
  6. [imie] => rysio
  7. [nazwisko] => rysio
  8. )
  9.  
  10. [1] => Array
  11. (
  12. [imie] => gutek
  13. [nazwisko] => gutek
  14.  
  15. )
  16. [dane] => Array
  17. (
  18. [wartosc] => jakas wartosc
  19.  
  20. )
  21. )
  22. [dane] => Array
  23. (
  24. [wartosc] => jakas wartosc
  25. )
  26. )

Czyli krótko mówiąć część kodu:
  1. <?php
  2. $arrTab[ 'user' ][ 'dane' ][ 'wartosc' ] = 'jakas wartosc';
  3.  
  4. $arrTab[ 'dane' ] = $arrTab[ 'user' ][ 'dane' ];
  5. unset( $arrTab[ 'user' ][ 'dane' ] );
  6. ?>

Wystarczyło zastąpić:

  1. <?php
  2. $arrTab[ 'dane' ][ 'wartosc' ] = 'jakas wartosc';
  3. ?>


I wynik byłby taki jak zamierzony ;-)

Czyli dla uporządkowania sprawy ma to wyglądać tak:
  1. <pre><?php
  2.  
  3. $arrTab = array();
  4. $arrTab[ 'user' ][ 0 ][ 'imie' ]  = 'rysio';
  5. $arrTab[ 'user' ][ 0 ][ 'nazwisko' ] = 'rysio';
  6.  
  7. $arrTab[ 'user' ][ 1 ][ 'imie' ]  = 'gutek';
  8. $arrTab[ 'user' ][ 1 ][ 'nazwisko' ] = 'gutek';
  9.  
  10. $arrTab[ 'dane' ][ 'wartosc' ] = 'jakas wartosc';
  11.  
  12. print_r( $arrTab );
  13.  
  14. ?></pre>
mike
No widzisz ~MagnuM Twoja tablica nie jest taka jak autor chciał tongue.gif
Ma o jeden element za dużo. Stąd u mnie unset()

A tak poza tym to Ty od początku tworzysz tablicę.
Masz na początku jakąś tablice i musisz znią zrobić coś, a Ty po prostu tworzysz wynik. To nie jest żadne przekaształcenie, żadna zmiana.
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.