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