Lekcja 9: Funkcje Wbudowane PHP do Pracy z Tablicami

Witaj w dziewiątej lekcji kursu PHP! W poprzedniej lekcji dogłębnie poznaliśmy tablice – jak je tworzyć, czym są tablice indeksowane, asocjacyjne i wielowymiarowe, oraz jak wykonywać na nich podstawowe operacje. PHP oferuje jednak znacznie więcej narzędzi do pracy z tym wszechstronnym typem danych. Istnieje bogaty zestaw wbudowanych funkcji, które znacznie ułatwiają i przyspieszają manipulowanie tablicami. W tej lekcji przyjrzymy się najważniejszym i najczęściej używanym funkcjom tablicowym, które pozwalają na sortowanie, przeszukiwanie, filtrowanie, łączenie, dzielenie i transformowanie tablic.

Dlaczego funkcje tablicowe są ważne?

Praca z tablicami jest codziennością w programowaniu w PHP. Niezależnie od tego, czy przetwarzasz dane z formularza, wyniki zapytania do bazy danych, czy konfigurację aplikacji, tablice są wszędzie. Wbudowane funkcje tablicowe dostarczają zoptymalizowanych i przetestowanych rozwiązań dla typowych zadań. Używanie ich zamiast pisania własnej logiki od zera nie tylko oszczędza czas, ale także prowadzi do bardziej czytelnego, wydajnego i mniej podatnego na błędy kodu. Znajomość tych funkcji jest kluczowa dla każdego programisty PHP.

Podstawowe Funkcje Informacyjne i Modyfikujące Rozmiar

Z niektórymi z tych funkcji spotkaliśmy się już wcześniej, ale warto je przypomnieć w kontekście pełnego zestawu narzędzi:

<?php
$owoce = ["jabłko", "banan", "pomarańcza"];
echo "Liczba owoców: " . count($owoce) . "<br>"; // 3

array_push($owoce, "gruszka", "śliwka");
print_r($owoce); // Array ( [0] => jabłko [1] => banan [2] => pomarańcza [3] => gruszka [4] => śliwka )
echo "<br>";

$ostatniOwoc = array_pop($owoce);
echo "Usunięto: $ostatniOwoc<br>"; // śliwka
print_r($owoce);
echo "<br>";

array_unshift($owoce, "mango");
print_r($owoce); // Array ( [0] => mango [1] => jabłko [2] => banan [3] => pomarańcza [4] => gruszka )
echo "<br>";

$pierwszyOwoc = array_shift($owoce);
echo "Usunięto z początku: $pierwszyOwoc<br>"; // mango
print_r($owoce);
echo "<br>";
?>

Wyszukiwanie w Tablicach

PHP dostarcza kilku funkcji do wyszukiwania wartości lub kluczy w tablicach:

<?php
$liczby = [10, 20, "30", 40, 50, 20];

if (in_array("30", $liczby)) { // Luźne porównanie, "30" == 30
    echo "Wartość \"30\" (string) jest w tablicy (in_array luźne).<br>";
}
if (in_array(30, $liczby, true)) { // Ścisłe porównanie
    echo "Wartość 30 (int) jest w tablicy (in_array ścisłe).<br>";
} else {
    echo "Wartość 30 (int) NIE jest w tablicy przy ścisłym porównaniu z \"30\".<br>";
}

$kluczDwudziestki = array_search(20, $liczby);
if ($kluczDwudziestki !== false) {
    echo "Pierwsze wystąpienie wartości 20 ma klucz: $kluczDwudziestki<br>"; // Klucz: 1
}

$kluczNieistniejacy = array_search(100, $liczby);
if ($kluczNieistniejacy === false) {
    echo "Wartość 100 nie została znaleziona w tablicy.<br>";
}

$dane = ["a" => "Alpha", "b" => "Beta", 0 => "Zero"];
if (array_key_exists("a", $dane)) {
    echo "Klucz 'a' istnieje.<br>";
}
if (array_key_exists(0, $dane)) {
    echo "Klucz 0 istnieje.<br>";
}
if (!array_key_exists("c", $dane)) {
    echo "Klucz 'c' nie istnieje.<br>";
}
?>

Sortowanie Tablic

PHP oferuje szeroką gamę funkcji do sortowania tablic. Różnią się one tym, czy sortują według wartości czy kluczy, czy zachowują powiązania klucz-wartość, kierunkiem sortowania (rosnąco/malejąco) oraz sposobem porównywania elementów.

Sortowanie według wartości:

Sortowanie według kluczy:

Flagi sortowania (opcjonalny drugi parametr):