devblog, portfolio

movie producer, zend framework, php, jquery pluginy



PHP: Operacje na tablicach #2

W dzisiejszym odcinku pokażę Wam kolejne pięć przydatnych funkcji służących do obsługi obiektów array w PHP. W poprzednim odcinku pokazałem funkcje, z których korzysta się dość rzadko najczęściej z powodu ich nieznajomości. W tym odcinku będzie coś dla początkująych.

Dodawanie elementów do tablicy

Aby dodać do tablicy dowolną liczbę elementów, możemy skorzystać z następującej konstrukcji:

<?php
$array = array();

$array[] = 'element1';
$array[] = 4;
$array[] = 'element2';
?>

Możemy jednak skorzystać z bardziej eleganckiego rozwiązania, jakim jest funkcja array_push(array &$wejscie, mixed $val1, [mixed $val2 ...]). Jak widać na prototypie funkcji, przyjmuje ona co najmniej dwa argumenty:

  • $wejscie - tablica, do której mamy dodawać elementy; ten parametr przekazywany jest przez referencję (tzn, że do funkcji przekazywana jest oryginalna tablica i na niej będą wykonywane wszelkie operacje - nie na jej kopii
  • $val1 - obiekt dowolnego typu, który ma zostać jako kolejny element do tablicy $wejscie
  • kolejne elementy - opcjonalnie

Dodawanie elementów na początku tablicy

Poprzednia funkcja dodawała elementy na samym końcu tablicy. Z kolei array_unshift dodaje elementy na początku tablicy. Przyjmuje ona dokładnie takie same parametry jak opisana wyżej koleżanka :)

Usuwanie elementów z tablicy

Funkcja, którą teraz zaprezentuje, nie służy do usuwania jedynie elementów tablic czy całych tablic. Służy ona do usuwania dowlonych obiektów (czyli także zmiennych). Jej nazwa to unset. Jako parametry, możemy podać dowolną liczbę elementów, które mają zostać usunięte z pamięci. Aby usunąć element tablicy, wywyołujemy ją w następujący sposób:

<?php
//jeden element
unset($array[1]);
//wiele elementów
unset($array[1], $array[2], $array[3][0]);
?>

Możemy oczywiście na bazie unset napisać własną funkcję, która będzie usuwała podane elementy tablicy. Moją propozycję można zobaczyć w listingDump.

Łączenie tablic

Aby połączyć ze sobą kilka tablic, możemy użyć funkcji array_merge(array $arr1, array $arr2 [...]). Jako parametry przyjmowane są tablice do połączenia. Możemy podać dowolną liczbę tablic. Funkcja zwróci nam jednen obiekt array, w którym znajdą się wszystkie elementy z tablic podanych jako parametry array_merge.

Uwaga! Jeśli korzystamy z kluczy tekstowych (tablice asocjacyjne), to w razie wystąpienia w kolejnej tablicy tego samego klucza, zastąpi on poprzedni element z takim kluczem.

Sumowanie wartości elementów tablicy

W poprzednim odcinku pokazałem funkcję array_product, która zwracała iloczyn wszystkich wartości liczbowych zawartych w tablicy. W tym odcinku, jako ciekawostkę, pokazuję funkcję array_sum, która to zsumuje wszystkie wartości liczbowe zawarte w tablicy. Funkcja array_sum jako argument przyjmuje tablicę, a zwraca obiekt typu double (tzn. float ;).

Na dzisiaj to już wszystko.

Dodaj komentarz »