'array_map' z własną funkcją
Część sekcji Logika i przepływ programu ścieżki PHP w Coddy. Lekcja 40 z 68.
Chociaż wbudowane funkcje, takie jak strtoupper, dobrze współpracują z array_map(), prawdziwa moc tkwi w używaniu własnych funkcji niestandardowych. Dzięki temu możesz tworzyć konkretne przekształcenia dopasowane dokładnie do swoich potrzeb.
Aby użyć własnej funkcji z array_map(), po prostu przekaż nazwę funkcji jako ciąg znaków w pierwszym parametrze. Twoja własna funkcja powinna przyjmować jeden parametr (bieżący element tablicy) i zwracać przekształconą wartość.
<?php
function doubleNumber($num) {
return $num * 2;
}
$numbers = [1, 2, 3, 4, 5];
$doubled = array_map("doubleNumber", $numbers);
// Wynik: [2, 4, 6, 8, 10]
?>To podejście daje ci pełną kontrolę nad tym, jak przetwarzany jest każdy element. Możesz wykonywać złożone obliczenia, operacje na ciągach znaków lub dowolną inną logikę we własnej funkcji, dzięki czemu array_map() jest niezwykle wszechstronne w zadaniach przekształcania danych.
Wyzwanie
ŁatwyOtrzymasz dwa dane wejściowe: oddzieloną przecinkami listę temperatur w stopniach Celsjusza oraz jednostkę docelową konwersji (albo F oznaczające stopnie Fahrenheita, albo K oznaczające kelwiny). Pierwsze dane wejściowe zawierają temperatury jako ciąg znaków w formacie 0,10,20,30,100, a drugie to pojedynczy znak wskazujący rodzaj konwersji.
Odczytaj oba dane wejściowe, przekształć oddzielone przecinkami temperatury w tablicę liczb, utwórz własną funkcję, która konwertuje temperaturę w stopniach Celsjusza na jednostkę docelową, użyj array_map() wraz z własną funkcją, aby przekształcić wszystkie temperatury, a następnie wypisz każdą przekonwertowaną temperaturę w osobnym wierszu, zaokrągloną do 2 miejsc po przecinku.
Wzory konwersji:
- Stopnie Celsjusza na stopnie Fahrenheita:
(C × 9/5) + 32 - Stopnie Celsjusza na kelwiny:
C + 273.15
Format danych wejściowych:
- Pierwszy wiersz: oddzielone przecinkami temperatury w stopniach Celsjusza (przykład:
0,10,20,30,100) - Drugi wiersz: docelowa jednostka konwersji —
FalboK(przykład:F)
Oczekiwany wynik: każda przekonwertowana temperatura wypisana w osobnym wierszu, zaokrąglona do 2 miejsc po przecinku
Spróbuj swoich sił
<?php
// Wczytaj temperatury oddzielone przecinkami
$temperatures = fgets(STDIN);
// Wczytaj docelową jednostkę (F lub K)
$unit = trim(fgets(STDIN));
// Przekształć ciąg znaków z wartościami oddzielonymi przecinkami w tablicę liczb
$tempArray = explode(',', trim($temperatures));
// TODO: Napisz swój kod poniżej
// Utwórz własną funkcję przeliczającą stopnie Celsjusza na jednostkę docelową
// Użyj array_map(), aby przeliczyć wszystkie temperatury
// Wypisz każdą przeliczoną temperaturę w osobnym wierszu, zaokrągloną do 2 miejsc po przecinku
?>Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ programu
1Zaawansowane funkcje
Funkcje anonimoweDomknięcia i „use”Funkcje strzałkoweFunkcje zwrotneUżywanie „call_user_func”Funkcje zmiennePrzekazywanie przez referencjęFunkcje rekurencyjnePowtórka: przegląd funkcji4Tablice wielowymiarowe
Tworzenie tablicy 2DDostęp do elementów tablicy 2DModyfikowanie elementów tablicy 2DIterowanie z użyciem zagnieżdżonych pętliAsocjacyjne tablice 2DPodsumowanie: ćwiczenie z prostą siatką2Zaawansowane operacje na tablicach
Dodawanie za pomocą 'array_push'Usuwanie za pomocą 'array_pop'Dodawanie za pomocą 'array_unshift'Usuwanie za pomocą 'array_shift'Łączenie tablic indeksowanychŁączenie tablic asocjacyjnychWyodrębnianie za pomocą 'array_slice'Wyszukiwanie wartości za pomocą 'in_array'Wyszukiwanie kluczy za pomocą 'array_search'Podsumowanie: ćwiczenie z playlistą3Sortowanie tablic
Sortowanie tablic indeksowanych rosnącoSortowanie tablic indeksowanych malejącoSortowanie tablic asocjacyjnych według wartościSortowanie tablic asocjacyjnych według kluczaSortowanie w kolejności naturalnejSortowanie niestandardowe za pomocą 'usort'Podsumowanie: sortowanie tabeli wyników6Funkcje wyższego rzędu dla tablic
Przekształcanie za pomocą 'array_map''array_map' z własną funkcjąFiltrowanie za pomocą 'array_filter''array_filter' z własną funkcjąRedukowanie za pomocą 'array_reduce'Przechodzenie po elementach za pomocą 'array_walk'Podsumowanie: przetwarzanie danychPoćwicz samodzielnie: Kompilator PHP online