Wyszukiwanie wartości z użyciem technik programowania funkcyjnego (mapowanie, filtrowanie, redukcja)

Założenie: Znajdźmy elementy tablicy spełniające złożony warunek po przetworzeniu danych za pomocą funkcji array_map, array_filter i array_reduce.

Krok po kroku:

  1. Przygotowanie danych: Definiujemy tablicę z danymi użytkowników.
  2. 
    $users = [
        ['name' => 'Jan', 'age' => 30, 'city' => 'Warszawa'],
        ['name' => 'Anna', 'age' => 25, 'city' => 'Kraków'],
        ['name' => 'Piotr', 'age' => 35, 'city' => 'Warszawa'],
        ['name' => 'Maria', 'age' => 28, 'city' => 'Wrocław']
    ];
    				
  3. Mapowanie danych: Używamy array_map, aby dodać nowe pole ‘ageGroup’ na podstawie wieku.
  4. 
    $usersWithAgeGroup = array_map(function ($user) {
        $user['ageGroup'] = ($user['age'] < 30) ? 'Młody' : 'Starszy';
        return $user;
    }, $users);
    				
  5. Filtrowanie danych: Używamy array_filter, aby wybrać tylko użytkowników z Warszawy i starszych niż 30 lat.
  6. 
    $filteredUsers = array_filter($usersWithAgeGroup, function ($user) {
        return $user['city'] === 'Warszawa' && $user['age'] > 30;
    });
    				
  7. Redukcja danych: Używamy array_reduce, aby uzyskać listę imion użytkowników spełniających warunek.
  8. 
    $names = array_reduce($filteredUsers, function ($carry, $user) {
        $carry[] = $user['name'];
        return $carry;
    }, []);
    
    print_r($names); // Wyświetli: Array ( [0] => Piotr )
    				

Ten przykład pokazuje, jak wykorzystać funkcje wyższego rzędu w PHP do efektywnego przetwarzania i filtrowania danych przed wyszukiwaniem. Zachęcamy do eksperymentowania z różnymi funkcjami i warunkami!

Dodaj komentarz 0

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