Menu
Coddy logo textTech

사용자 정의 함수와 'array_map'

Coddy PHP 여정의 논리 & 흐름 섹션에 포함된 레슨. 68개 중 40번째.

strtoupper와 같은 내장 함수는 array_map()과 함께 사용하면 잘 작동하지만, 진정한 강력함은 자신만의 custom 함수를 사용하는 데서 나옵니다. 이를 통해 정확한 요구 사항에 맞춘 특정 변환을 만들 수 있습니다.

array_map()과 함께 custom function을 사용하려면, 첫 번째 매개변수에 function 이름을 string으로 전달하기만 하면 됩니다. custom function은 하나의 매개변수(현재 array 요소)를 받아 변환된 값을 return해야 합니다.

<?php
function doubleNumber($num) {
    return $num * 2;
}

$numbers = [1, 2, 3, 4, 5];
$doubled = array_map("doubleNumber", $numbers);
// 결과: [2, 4, 6, 8, 10]
?>

이 접근 방식을 사용하면 각 요소가 처리되는 방식을 완전히 제어할 수 있습니다. custom function 내에서 복잡한 계산, string 조작 또는 기타 로직을 수행할 수 있으므로, array_map()은 데이터 변환 작업에 매우 유연하게 활용됩니다.

challenge icon

챌린지

쉬움

두 개의 입력을 받습니다. 하나는 Celsius 단위의 쉼표로 구분된 temperatures 목록이고, 다른 하나는 conversion을 위한 target unit입니다(F는 Fahrenheit, K는 Kelvin을 의미). 첫 번째 입력에는 0,10,20,30,100 형식의 string으로 temperatures가 포함되며, 두 번째 입력은 conversion 유형을 나타내는 단일 문자입니다.

두 입력을 Read하고, 쉼표로 구분된 temperatures를 numbers의 array로 변환한 다음, Celsius temperature를 target unit으로 convert하는 custom function을 Create하세요. custom function과 함께 array_map()을 사용하여 모든 temperatures를 변환하고, 각 converted temperature를 별도의 line에 2 decimal places로 rounded하여 Print하세요.

conversion 공식:

  • Celsius에서 Fahrenheit로: (C × 9/5) + 32
  • Celsius에서 Kelvin으로: C + 273.15

입력 형식:

  • 첫 번째 line: Celsius의 쉼표로 separated된 temperatures (예: 0,10,20,30,100)
  • 두 번째 line: target conversion unit - F 또는 K 중 하나 (예: F)

Expected output: 각 converted temperature를 별도의 line에 2 decimal places로 rounded하여 Print

직접 해보기

<?php
// 쉼표로 구분된 온도 읽기
$temperatures = fgets(STDIN);

// 대상 단위 읽기 (F 또는 K)
$unit = trim(fgets(STDIN));

// 쉼표로 구분된 문자열을 숫자 배열로 변환
$tempArray = explode(',', trim($temperatures));

// TODO: 아래에 코드를 작성하세요
// 섭씨를 대상 단위로 변환하는 사용자 정의 함수 만들기
// array_map()을 사용하여 모든 온도에 변환 적용
// 변환된 각 온도를 소수점 둘째 자리까지 반올림하여 별도의 줄에 출력

?>
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리 & 흐름의 모든 레슨

직접 연습해 보세요: 온라인 PHP 컴파일러