PHP: Operacje na tablicach #3
Kolejny odcinek o tablicach w PHP. W tej części pokażę, jak "wyciągnąć" klucze lub elementy tablicy do nowego obiektu array, a także jak wypełnić tablicę kopiami danego elemetu. Następnie pokażę przydatną funkcję do przeszukiwania tablicy.
Klucze tablicy asocjacyjnej
Kiedy korzystamy z tablicy asocjacyjnej, czasami okazuje się, że musimy skorzystać z kluczy danej tablicy. Aby je z tej tablicy wyciągnąc, nie musimy wysyłać jej do pętli foreach, czy korzystać z długich rozwiązań (spotkałem się z rozwiązaniem opartym na print_r i preg_match_all !!). Twórcy PHP dają nam do użytku funkcję:
array_keys(array $wejscie, [mixed $szukana_wartosc, boolean $sprawdzanie_typu])
Funkcja ta zwraca tablicę z kluczami tablicy podanej jako $wejscie. Zwracane klucze możemy zawężyć do tych podanych jako $szukana_wartosc. Od PHP5 dostajemy możliwość porównywania szczegółowego, tzn. z uwzględnieniem typu klucza (operator porównania ===). W celu wybrania takiej opcji, ustawiamy trzeci parametr na wartość true.
Wartości tablicy
Funkcja array_keys zwraca klucze tablicy, a funkcja, którą chcę teraz przedstawić, zwraca wartości tablicy. Może to być pomocne kiedy korzystamy z tablic asocjacyjnych, a potrzebujemy indeksów liczbowych. Funkcja nazywa się array_values i jako argument przyjmuje tablicę, z której wartości ma wyciągnąć.
Wypełnianie tablicy wartościami
Kolejne dwie funkcje, które zaprezentuję, służą do wypełniania tablic konkretnymi wartościami. Pierwsza z nich, array_fill(int $indeks, int $liczba, mixed $wartość), służy do stworzenia tablicy wypełnionej tymi samymi wartościami w każdym polu począwszy od $indeks. To, ile razy dana $wartość ma być wstawiona definiujemy w parametrze $liczba.
Druga funkcja array_pad(array $wejscie, int $nowy_rozmiar, mixed $wartość), służy tablicy zawartością zmiennej $wartość, tak, żeby rozmiar tablicy $wejscie był równy rozmiarowi określonemu w $nowy_rozmiar.
Ciekawostką jest, że aby dodać wartości na początku tablicy, wystarczy zmienną $nowy_rozmiar zdefiniować ze znakiem - (minus - liczba ujemna).
Przeszukiwanie tablicy
W pierwszym odcinku serii prezentowałem funkcję in_array, służącą do przeszukiwania tablicy. Zwracała ona wartość typu boolean. Istnieje jeszcze jedna funkcja służąca dokładnie do tego samego co in_array. Różni się tylko tym, że jeśli znajduje odpowiednią wartość, to zwraca jej klucz. Nazywa się array_search(mixed $szukana, array $do_przeszukania, [bool $sprawdź_typy).
Pierwszy parametr to szukana wartość, drugi to tablica do przeszukania, a trzeci - typu boolean, określa, czy porównywanie wartości przy sprawdzaniu obecności wartości w tablicy ma być sprawdzany także typ wartości.
Zdjęcie do artykułu dostarczył bank zdjęć Fotolia.com - © lightpoet - Fotolia.com