Menu
Coddy logo textTech

'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.

challenge icon

Wyzwanie

Łatwy

Otrzymasz 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 — F albo K (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

?>
quiz iconSprawdź się

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

Poćwicz samodzielnie: Kompilator PHP online