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 fonksiyonlar array_map() ile iyi çalışsa da, asıl güç kendi özel fonksiyonlarınızı kullanmaktan gelir. Bu, tam ihtiyaçlarınıza göre uyarlanmış belirli dönüşümler oluşturmanıza olanak tanır.

Özel bir fonksiyonu array_map() ile kullanmak için, ilk parametre olarak fonksiyon adını bir dize (string) olarak geçmeniz yeterlidir. Özel fonksiyonunuz bir parametre (mevcut dizi öğesi) 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 bir öğenin nasıl işleneceği üzerinde size tam kontrol sağlar. Özel fonksiyonunuz içinde karmaşık hesaplamalar, dize manipülasyonları veya başka herhangi bir mantık yürütebilirsiniz; bu da array_map() fonksiyonunu veri dönüştürme görevleri için inanılmaz derecede çok yönlü hale getirir.

quiz iconKendini test et

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

quiz iconKendini test et

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

quiz iconKendini test et

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

challenge icon

Görev

Kolay

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

Her iki girdiyi de okuyun, virgülle ayrılmış sıcaklıkları bir sayı dizisine dönüştürün, bir Celsius sıcaklığını hedef birime dönüştüren özel bir fonksiyon oluşturun, tüm sıcaklıkları dönüştürmek için özel fonksiyonunuzla birlikte array_map() kullanın ve her bir dönüştürülmüş sıcaklığı, ondalık basamaktan sonra 2 hane olacak şekilde 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 formatı:

  • İ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ı: Her bir dönüştürülmüş sıcaklık, ondalık basamaktan sonra 2 hane olacak şekilde yuvarlanmış olarak ayrı bir satıra yazdırılır

Kopya kağıdı

array_map() ile özel fonksiyonları, fonksiyon adını bir dize olarak geçirerek kullanın. Özel fonksiyon bir parametre (mevcut dizi öğesi) 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, fonksiyonunuz içinde karmaşık hesaplamalara, dize işlemlerine veya herhangi bir özel mantığa izin vererek öğe işleme üzerinde tam kontrol sağlar.

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: Kodunuzu aşağıya yazın
// Celsius'u hedef birime dönüştürmek için özel bir fonksiyon oluşturun
// Dönüşümü tüm sıcaklıklara uygulamak için array_map() kullanın
// Dönüştürülen her sıcaklığı, virgülden sonra 2 basamağa yuvarlayarak ayrı bir satıra yazdırın

?>
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