ďťż

[PHP]Funkcja przekształcająca podany ciąg w tablice.

       

Podstrony


telcocafe

Cześć.
Od razu napiszę że nie chodzi mi o explode().
Mam ciąg "nazwa1:|:wartosc1-|-nazwa2:|:wartosc2-|-nazwa3:|:wartosc3"
i chciałbym przeszktałcić ten ciąg w tablice:
array( 'nazwa1' => 'wartosc1', 'nazwa2' => 'wartosc2', 'nazwa3' => 'wartosc3' );
Za pomocą jakiej funkcji jest to możliwe ?
Aha było by też fajnie gdybyście powiedzieli mi jakich najlepiej jest użyć separatorów do tego :P ( -|-, :|: )
Pozdrawiam.



W przypadku dokładnie takiej formy zapisu (jak co to zmienisz w dwóch miejscach ;))
$ciag = 'nazwa1:|:wartosc1-|-nazwa2:|:wartosc2-|-nazwa3:|:wartosc3'; $arr1 = explode('-|-', $ciag); foreach ($arr1 as $k=>$v) { $arr2[] = explode(':|:', $v); }

I teraz print_r($arr2); da nam:
Array ( [0] => Array ( [0] => nazwa1 [1] => wartosc1 ) [1] => Array ( [0] => nazwa2 [1] => wartosc2 ) [2] => Array ( [0] => nazwa3 [1] => wartosc3 ) )

To tylko przykład, ale z pomocą kosmetycznych praktycznie poprawek osiągniesz dokładnie ten efekt który potrzebujesz ;)
Użytkownik Einzeinbleth edytował ten post 23 sierpień 2006, 13:03
do podanej czynności służy funkcja explode :P w powyższym przypadku podwójnie stosowana. Oprócz tego możesz połączyć/przyjrzeć się list()
Notka zapewne chodzi o zapis danych do plików tekstowych... zamiast coś|coś|coś stosować serializowane tablice (zapisujesz serialize($tablica) a odczytujesz i $tablica = unserialize($dane) i gotowe)
Użytkownik Riklaunim edytował ten post 23 sierpień 2006, 13:03

do podanej czynności służy funkcja explode :P w powyższym przypadku podwójnie stosowana. Oprócz tego możesz połączyć/przyjrzeć się list()
Notka zapewne chodzi o zapis danych do plików tekstowych... zamiast coś|coś|coś stosować serializowane tablice (zapisujesz serialize($tablica) a odczytujesz i $tablica = unserialize($dane) i gotowe)


No właśnie.
Chodzi mi o odczyt z pliku tekstowego.

Odczytują plik
Tworzę tablice
Tablice wykorzystuje w systemie timplejtów

Chcę zrobić swoją strone w kilku językach i ta metoda wydaje mi się najrozsądniejsza.

Kawałek tablicy jakiej potrzebuję:

$profileArray = array( 'Name' => 'Imię', 'Surname' => 'Nazwisko', 'Country' => 'Kraj', 'Place' => 'Miejscowość', 'GaduGadu' => 'Numer GG', 'Computer' => 'Komputer:', 'GraphicCard' => 'Karta Graficzna' );



<?php $tablica=array(); $ciag = 'nazwa1:|:wartosc1-|-nazwa2:|:wartosc2-|-nazwa3:|:wartosc3'; $arr1 = explode('-|-', $ciag); foreach ($arr1 as $k=>$v) { $arr2 = explode(':|:', $v); $tablica[$arr2[0]]=$arr2[1]; } print_r($tablica); ?>

wynik z print_r'a
Array ( [nazwa1] => wartosc1 [nazwa2] => wartosc2 [nazwa3] => wartosc3 )
Użytkownik bikstopa edytował ten post 23 sierpień 2006, 13:47
Wiesz że cie kocham ?
Już miałem się sam za to brać :D
karma += 20
Topic [SOLVED]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.