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.