Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]jak zamienic tablice wyswietlona print_r na normalna tablice
Forum PHP.pl > Forum > Przedszkole
wiewiorek
print_r wyswietla tablice w formie:
  1. Array( [a] => test [b] => test2 )


A jak to zamienic na tablice php ? Bo przypisanie Array( [a] => test [b] => test2 ) do zmiennej php wyswietla błędy, bo powinno byc, ze nawiasy klamrowe sa cudzyslowami i oddzielone od siebie przecinkami - przyklad:
  1. $zmienna = Array( 'a' => 'test', 'b', => 'test2' );
nospor
skoro $zm to tablica to po co robisz jej print_r i spowrotem chcesz wstawić do $zm?
No chyba ze ty to przechowujesz na później, np w bazie czy pliku.

Ale wowczas nie print_r() a serialize(). i zeby potem otrzymasz tablice masz zrobic unserialize() - wiecej info w manualu
wiewiorek
Nie wglebiajac sie w szczegoly - mam tablicę w formie tablicy wyswietlonej print_r i dysponuje TYLKO taka tablica - aby z niej skorzystac w php musza ja zamienic na tablice php, jak to zrobic ?
wookieb
Nie zrobisz, bez porządnych konwersji.
Żeby wyświetlić tablice w formie kodowej użyj var_export
nospor
Cytat
Żeby wyświetlić tablice w formie kodowej użyj
Przeciez nie moze. Jakby mogl to zrobic to przecież by serialize() zrobil winksmiley.jpg
tvister
Nie wiem czy o to chodzi w 100% ale ... link =>
tehaha
wszystko zależy od tego co zawierają wartości tablicy, przykładowo można by użyć wyrażenia regularnego np.
  1. $string = ' Array ( [a] => aaa sd s ds sd s ds = asa [b] => sdfsdaf wiaer fsof asdf as )';
  2. $string2 = preg_match_all('/\[([A-Za-z]*)\] => ([^\[\]]*)/',$string, $match);
  3. $keys = $match[1];
  4. $values = $match[2];
  5. $i=0;
  6. foreach($keys as $key)
  7. {
  8. $new_array[$key] = $values[$i];
  9. ++$i;
  10. }
  11. print_r($new_array);

ale to wyrażenie nie zadziała poprawnie jeżeli w wartościach będą znaki: [,]
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.