Ten wpis jest kontynuacją poprzedniego wpisu z podstawowymi operacjami na tablicach w PHP. Tym razem opisuje bardziej zaawansowane funkcje, które ułatwiają pracę z tablicami.
array_map() – wykonuje funkcje podaną w pierwszym argumencie na każdym elemencie tablicy i zwraca nową tablicę
function multiplyx2($element) { return $element * 2; } $sampleArray = [1,2,3,4,5]; $result = array_map('multiplyx2', $sampleArray); print_r($result);
array_reduce() – pozwala zredukować tablicę do jednego elementu wykonując na nim funkcje podaną w drugim argumencie. Możemy przykładowo w ten sposób zsumować wszystkie elementy w tablicy
function sum($carry, $element) { return $carry += $element; } $sampleArray = [1,2,3,4,5]; $result = array_reduce($sampleArray, 'sum'); print_r($result); //15
array_walk() – pozwala przejść po każdym elemencie tablicy i użyć na nim funkcji podanej jako $callback, array_walk pozwala użyc trzeciego argumentu, który jest przekazywany do funkcji przykład:
//element przekazywany jest przez referencje function multiplyx2(&$element, $key, $exp) { $element = pow($element, $exp); } array_walk($sampleArray, 'multiplyx2' , 2); print_r($sampleArray);
array_walk_recursive() – działa tak samo jak array_walk() ale pozwala wykonać funkcję na tablicach wielowymiarowych
$sampleArray = [1 => [1,2,3] ,2,3=>[4,5 => [1,2]],4,5]; //element przekazywany jest przez referencje function multiplyx2(&$element, $key, $exp) { $element = pow($element, $exp); } array_walk_recursive ($sampleArray, 'multiplyx2' , 2); print_r($sampleArray);
inne przydatne funkcje:
- key_exists()/array_key_exists() -> sprawdza czy klucz istnieje w tablicy
- shuffle() – miesza tablice(losowo ustawia kolejnośc elementów)
- sizeof()/count() – zwraca liczbę elementów w tablicy, podając drugi argument jako stałą COUNT_RECURSIVE może działać dla tablic wielowymiarowych
Obsługa tablic w PHP jest dośc przyjemna z uwagi na dużą ilość wbudowanych funkcji. W kolejnym wpisie przedstawie funkcje, które operują na zbiorach. Jeśli masz jakieś pytania zapraszam do komentowania.
Zostaw komentarz