Funkcje anonimowe w sortowaniu tablic

Założenie: Nauczymy się sortować tablicę obiektów lub tablicę asocjacyjną w PHP używając funkcji anonimowych do zdefiniowania kryteriów sortowania.

Krok po kroku:

  1. Przykład 1: Sortowanie tablicy liczb rosnąco.
    
    $numbers = [3, 1, 4, 1, 5, 9, 2, 6];
    sort($numbers);
    print_r($numbers);
    				

    Funkcja `sort()` sortuje tablicę liczb w miejscu (zmienia oryginalną tablicę). `print_r()` wyświetla zawartość tablicy.

  2. Przykład 2: Sortowanie tablicy asocjacyjnej po wartości.
    
    $users = [
        'Jan' => 30,
        'Anna' => 25,
        'Piotr' => 35
    ];
    
    uasort($users, function ($a, $b) {
        return $a - $b; // Sortowanie rosnąco po wartości
    });
    
    print_r($users);
    				

    Funkcja `uasort()` sortuje tablicę asocjacyjną zachowując klucze. Funkcja anonimowa `function ($a, $b) { return $a – $b; }` definiuje porównanie: zwraca wartość ujemną, jeśli $a < $b, 0 jeśli $a == $b, i dodatnią jeśli $a > $b.

  3. Przykład 3: Sortowanie tablicy obiektów po atrybucie.
    
    class User {
        public $name;
        public $age;
    
        public function __construct($name, $age) {
            $this->name = $name;
            $this->age = $age;
        }
    }
    
    $users = [
        new User('Jan', 30),
        new User('Anna', 25),
        new User('Piotr', 35)
    ];
    
    usort($users, function ($a, $b) {
        return $a->age - $b->age; // Sortowanie po wieku
    });
    
    foreach ($users as $user) {
        echo $user->name . ' (' . $user->age . ')
    '; }

    Funkcja `usort()` sortuje tablicę obiektów. Funkcja anonimowa porównuje wiek użytkowników.

Ten przykład pokazuje podstawowe zastosowanie funkcji anonimowych w sortowaniu tablic w PHP. Zachęcamy do eksperymentowania z różnymi funkcjami porównującymi, aby opanować tę technikę.

Dodaj komentarz 0

Your email address will not be published. Required fields are marked *