Moje ulubione nowe funkcje w PHP 5

Z szeregu nowych funkcji wybrałam parę – moim zdaniem bardzo przydatnych – funkcji:

Po pierwsze funkcja array_combine(). Umożliwia stworzenie tablicy asocjacyjnej na podstawie dwóch innych tablic – pierwsza z nich to tablica kluczy, a druga tablica wartości.

$tab1 = array('klucz1', 'klucz2', 'klucz3');
$tab2 = array('wartosc1', 'wartosc2', 'wartosc3');
$tab3 = array_combine($tab1, $tab2);

Wówczas tablica $tab3 ma postać:

$tab3 = array('klucz1'=>'wartosc1', 'klucz2'=>'wartosc2', 'klucz3'=>'wartosc3');

Drugą jak dla mnie dość przydatną funkcją jest http_build_query(). Funkcja ta z argumentów podanych w tablicy (bądź obiektu) jako argumencie wejściowym tworzy łańcuch podobny łańcuchowi powstającemu przy przesyłaniu danych metodą GET. Dlatego też funkcja ta może się przydać do budowania takich właśnie zapytań, ale nie tylko.

Tablicą wejściową może być zwykła tablica:

$tab = array('zyrafa', los', 'hipopotam')
http_build_query($tab);

Wówczas stworzony łańcuch wygląda następująco:

0=zyrafa&1=los&2=hipopotam

Może to być tablica asocjacyjna:

$tab = array('duze zwierze'=>'zyrafa', 'rogate zwierze'=>'los', 'hipopotamowate'=>'hipopotam');
http_build_query($tab);

Wówczas łańcuch będzie miał postać:

duze+zwierze=zyrafa&rogate+zwierze=los&hipopotamowate=hipopotam

Może być mieszanka tablicy normalnej z asocjacyjną:

$tab = array('zyrafa', 'los', 'hipopotamowate'=>'hipopotam');
http_build_query($tab);

Funkcja zwróci wówczas:

0=zyrafa&1=los&hipopotamowate=>hipopotam

Jeśli nie chcemy by elementy były indeksowane samymi cyframi, można do funkcji dodać argument stanowiący przedrostek:

$tab = array('zyrafa', 'los', 'hipopotamowate'=>'hipopotam');
http_build_query($tab, 'arg');

Otrzymamy:

arg0=zyrafa&arg1=los&hipopotamowate=>hipopotam

Jak już jesteśmy przy argumentach funkcji należałoby dodać, że można również określić za pomocą jakiego znaku mają być łączone argumenty. Domyślnie jest nim znak &, ale może być to dowolny inny.

$tab = array('zyrafa', 'los', 'hipopotam')
http_build_query($tab, '', '|');

Wówczas stworzony łańcuch wygląda następująco:

0=zyrafa|1=los|2=hipopotam

Jeśli argumentem funkcji będzie tablica wielowymiarowa postaci:

$tab = array
(
	'osoba' => array
			(

				'imie' => 'Jan',
				'nazwisko' => 'Kowalski',
				'wiek' => 20

			)
);

Wówczas otrzymamy łańcuch postaci

osoba%5Bimie%5D=Jan&osoba%5Bnazwisko%5D=Kowalski&osoba%5Bwiek%5D=20

Jak widać został on już encodowany z postaci:

osoba[imie]=Jan&osoba[nazwisko]=Kowalski&osoba[wiek]=20

You might also like