Często poczatkujący programiści mają problemy z tablicami w PHP. Poniżej przedstawiam najczęściej potrzebne operacje na tablicach, zarówno proste jak i te bardziej zaawansowane.
Tworzenie tablicy w php
$arrayA = []; //pusta tablica $arrayB = array(); //stara składnia dla pustej tablicy $arrayC = ['jabłko', 'banan', 'śliwka']; //tablica z elementami $arrayD = [ 'owoc1' => 'jabłko', 'owoc2' => 'banan', 'owoc3' => 'śliwka', //ostatni przecinek jest opcjonalny ]; //tablica z kluczami
Dodawanie elementu do tablicy w PHP
$arrayA = []; $arrayA[] = 'jabłko'; //element bez klucza dodawany na koniec tablicy $arrayA['owoc'] = 'jabłko'; //element z kluczem array_push($arrayA, 'jabłko'); //dodanie elementu bez klucza na koniec tablicy przydatne przy dodaniu wielu elementów do tablicy array_push($arrayA, 'śliwka', 'wiśnia', 'banan'); //dodanie wielu elementów na koniec tablicy array_unshift($arrayA, 'agrest'); //dodanie jednego lub wielu elementów na początek tablicy
Usuwanie elementu z tablicy w PHP
$arrayA = ['a', 'b', 'c']; unset($arrayA[0]); //usunięcie pierwszego elementu z tablicy
Wyszukiwanie w tablicy w PHP
wyszukiwanie w tablicy w php można rozwiązać
$array = [ 'owoc1' => 'jabłko', 'owoc2' => 'banan', 'owoc3' => 'śliwka', //ostatni przecinek jest opcjonalny ]; $banan = array_search('banan', $array); echo 'klucz pod którym znajduje sie banan: '.$banan; //dostep do banana echo $array[$banan];
Sortowanie tablic w PHP
Do sortowania w PHP można użyć wielu wbudowanych funkcji takich jak:
- arsort() – sortowanie w porządku odwrotnym z zachowaniem kluczy przydatna przy sortowaniu tablic asocjacyjnych
- asort() – sortowanie z zachowaniem kluczy
- ksort() – sortowanie po kluczach
- krsort() – sortowanie po kluczach w porządku odwrotnym
- natsort() – sortowanie wg algorytmu „porządek naturalny” bardzo przydatne np przy sortowaniu plików
- natcasesort() – j/w ale z uwzględnieniem wielkości znaków
- sort() – sortuje tablice od najmniejszego do największego
- rsort() – działa podobnie do sort ale w odwornym porządku
- usort() – sortuje wartości na podstawie zdefinowanej przez użytkownika funkcji porównującej elementy
- array_multisort() – sortuje wiele tablic lub tablice wielowymiarowe
- uksort() – sortuje tablice wg klucz na podstawie podanej przez użytkownika funkcji
- uasort – j/w ale z zachowaniem kluczy
Flagi używane w algorytmach sortujących
- SORT_REGULAR -> nie zmienia typów elementow
- SORT_NUMERIC -> sortuje jako liczby
- SORT_STRING -> sortuje jako ciągi znaków
- SORT_LOCALE_STRING -> sortuje jako ciągi znaków z uwzględnieniem locale(czyli np jeśli locale to pl_PL to polskie znaki będą uwzględnione w sortowaniu)
Przykłady użycia
$tab1 = ['c1', 'a', 'b']; $tab2 = [4,1,3]; sort($tab1); print_r($tab1); asort($tab2); print_r($tab2); natsort($tab1); print_r($tab1); usort($tab2, function($a, $b) { if ($a == $b) { return 0; } else if ($a > $b) { return -1; } else { return 1; } }); print_r($tab2);
Zwróc uwagę, że funkcje sortujące przyjmują tablice poprzez referencje. To bardzo ważne gdyż jeśli byś użył funkcji w poniższy sposób
$tab1 = sort($tab1);
to nadpiszesz tablice wartością TRUE lub FALSE w zależności od tego czy sortowanie się powiodło.
Mam nadzieje, że przybliżyłem Ci podstawy obsługi tablic. W kolejnym wpisie postaram się omówić funkcje, które umożliwają bardziej zaawansowaną obsługe tablic, operacje na zbiorach itp.
Zostaw komentarz