Menu
Coddy logo textTech

Özel Fonksiyon ile 'array_map'

Coddy'nin PHP Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 40 / 68.

strtoupper gibi yerleşik işlevler array_map() ile iyi çalışsa da asıl güç, kendi özel işlevlerinizi kullanmaktan gelir. Bu, tam gereksinimlerinize göre uyarlanmış belirli dönüşümler oluşturmanızı sağlar.

array_map() ile özel bir işlev kullanmak için, ilk parametre olarak işlev adını bir dize şeklinde geçirmeniz yeterlidir. Özel işleviniz bir parametreyi (geçerli dizi öğesini) kabul etmeli ve dönüştürülmüş değeri döndürmelidir.

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

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

Bu yaklaşım, her öğenin nasıl işleneceği üzerinde tam kontrol sağlar. Özel işleviniz içinde karmaşık hesaplamalar, dize işlemleri veya başka herhangi bir mantık gerçekleştirebilir; böylece array_map() veri dönüştürme görevleri için inanılmaz derecede çok yönlü hale gelir.

challenge icon

Görev

Kolay

İki girdi alacaksınız: Celsius cinsinden virgülle ayrılmış sıcaklıklar listesi ve dönüşüm için hedef birim (F Fahrenheit veya K Kelvin). İlk girdi, 0,10,20,30,100 biçiminde bir dize olarak sıcaklıkları içerir ve ikinci girdi, dönüşüm türünü belirten tek bir karakterdir.

Her iki girdiyi okuyun, virgülle ayrılmış sıcaklıkları sayılardan oluşan bir diziye dönüştürün, Celsius sıcaklığını hedef birime dönüştüren özel bir işlev oluşturun, tüm sıcaklıkları dönüştürmek için özel işlevinizle array_map() kullanın ve dönüştürülen her sıcaklığı 2 ondalık basamağa yuvarlayarak ayrı bir satıra yazdırın.

Dönüşüm formülleri:

  • Celsius'tan Fahrenheit'a: (C × 9/5) + 32
  • Celsius'tan Kelvin'e: C + 273.15

Girdi biçimi:

  • İlk satır: Celsius cinsinden virgülle ayrılmış sıcaklıklar (örnek: 0,10,20,30,100)
  • İkinci satır: Hedef dönüşüm birimi - F veya K (örnek: F)

Beklenen çıktı: Dönüştürülen her sıcaklığın 2 ondalık basamağa yuvarlanarak ayrı bir satıra yazdırılması

Kendin dene

<?php
// Virgülle ayrılmış sıcaklıkları oku
$temperatures = fgets(STDIN);

// Hedef birimi oku (F veya K)
$unit = trim(fgets(STDIN));

// Virgülle ayrılmış dizeyi bir sayı dizisine dönüştür
$tempArray = explode(',', trim($temperatures));

// TODO: Kodunu aşağıya yaz
// Celsius'u hedef birime dönüştürmek için özel bir fonksiyon oluştur
// Dönüşümü tüm sıcaklıklara uygulamak için array_map() kullan
// Her dönüştürülmüş sıcaklığı ayrı bir satıra, 2 ondalık basamağa yuvarlanmış olarak yazdır

?>
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online PHP derleyicisi