Menu
Coddy logo textTech

'array_map' ile Dönüştürme

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

array_map() fonksiyonu, bir dizideki her öğeye bir geri çağırma (callback) fonksiyonu uygulayarak her öğeyi dönüştüren güçlü bir araçtır. Orijinal diziyi değiştiren fonksiyonların aksine, array_map() dönüştürülmüş değerlerle tamamen yeni bir dizi oluşturur ve döndürür.

Temel sözdizimi iki parametre gerektirir: birincisi, uygulamak istediğiniz geri çağırma (callback) fonksiyonu ve ikincisi, dönüştürmek istediğiniz dizidir. PHP, array_map() ile geri çağırma fonksiyonu olarak mükemmel şekilde çalışan birçok yerleşik fonksiyona sahiptir.

<?php
$names = ["alice", "bob", "charlie"];
$uppercaseNames = array_map("strtoupper", $names);
// Sonuç: ["ALICE", "BOB", "CHARLIE"]
?>

Bu örnekte, strtoupper, $names dizisindeki her bir öğeye uygulanır. Orijinal dizi değişmeden kalırken, $uppercaseNames dönüştürülmüş sonuçları içerir. Bu, orijinal değerleri kaybetmeden verileri işlemeniz gerektiğinde array_map() fonksiyonunu ideal 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: virgülle ayrılmış ürün fiyatları listesi ve bir indirim yüzdesi. İlk girdi, 19.99,25.50,12.75,8.00 formatında bir dize olarak fiyatları içerir ve ikinci girdi, sayı olarak indirim yüzdesidir (örnek: 15).

Her iki girdiyi de okuyun, virgülle ayrılmış fiyatları bir sayı dizisine dönüştürün, dönüşüm için yerleşik floatval fonksiyonuyla birlikte array_map() kullanarak ve indirim hesaplaması yaparak her fiyata indirim yüzdesini uygulayın ve her indirimli fiyatı, virgülden sonra 2 basamağa yuvarlanmış şekilde ayrı bir satıra yazdırın.

İndirimli fiyatı hesaplamak için: orijinal fiyatı (100 - discount) / 100 ile çarpın.

Giriş formatı:

  • İlk satır: Virgülle ayrılmış ürün fiyatları (örnek: 19.99,25.50,12.75,8.00)
  • İkinci satır: Sayı olarak indirim yüzdesi (örnek: 15)

Beklenen çıktı: Her indirimli fiyatın ayrı bir satıra yazdırılması, virgülden sonra 2 basamağa yuvarlanmış şekilde (örnek: 16.99, 21.68, 10.84, 6.80)

Kopya kağıdı

array_map() fonksiyonu, her bir öğeye bir geri çağırma (callback) fonksiyonu uygulayarak bir dizideki her öğeyi dönüştürür. Orijinal diziyi değiştirmeden, dönüştürülmüş değerlerle yeni bir dizi oluşturur ve döndürür.

Yerleşik fonksiyon ile temel sözdizimi:

<?php
$names = ["alice", "bob", "charlie"];
$uppercaseNames = array_map("strtoupper", $names);
// Sonuç: ["ALICE", "BOB", "CHARLIE"]
?>

Fonksiyon iki parametre alır: geri çağırma fonksiyonu ve dönüştürülecek dizi. Geri çağırma olarak yerleşik PHP fonksiyonlarını veya anonim fonksiyonları kullanabilirsiniz.

Kendin dene

<?php
// Girdiyi oku
$prices_input = trim(fgets(STDIN));
$discount = floatval(fgets(STDIN));

// Virgülle ayrılmış fiyatları diziye dönüştür
$prices = explode(',', $prices_input);

// YAPILACAK: Kodunuzu aşağıya yazın
// Her fiyata indirimi uygulamak için array_map() kullanın


// Her bir indirimli fiyatı 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