'array_filter' ile Filtreleme
Coddy'nin PHP Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 41 / 68.
array_filter() fonksiyonu, yalnızca belirli kriterleri karşılayan öğeleri içeren yeni bir dizi oluşturmak için tasarlanmıştır. Her öğeyi dönüştüren array_map() fonksiyonunun aksine, array_filter() öğeleri bir testi geçip geçmediklerine bağlı olarak seçici bir şekilde tutar.
Bir geri çağırma (callback) fonksiyonu olmadan kullanıldığında, array_filter() bir dizideki tüm "boş" değerleri otomatik olarak kaldırır. PHP birkaç değeri boş olarak kabul eder: false, null, 0, boş dizeler "" ve boş diziler.
<?php
$mixedData = ["hello", 0, "world", false, null, "PHP", ""];
$cleanedData = array_filter($mixedData);
// Sonuç: ["hello", "world", "PHP"]
?>Bu davranış, array_filter() fonksiyonunu veri dizilerini temizlemek için son derece kullanışlı hale getirir. Orijinal dizi değişmeden kalır ve yalnızca anlamlı değerleri içeren yeni bir dizi elde edersiniz. Bu, özellikle kullanıcı girişini işlerken veya istenmeyen boş değerler içerebilecek verilerle çalışırken yararlıdır.
Görev
KolayBir girdi alacaksınız: sayılar, boş dizeler, sıfırlar ve metin yanıtları dahil olmak üzere çeşitli veri türlerini içeren virgülle ayrılmış bir anket yanıtları listesi. Girdi yes,0,,no,5,,true,false,answer formatında olacaktır.
Girdiyi okuyun, virgülle ayrılmış değerleri bir diziye dönüştürün, tüm boş değerleri kaldırmak için bir geri çağırma (callback) fonksiyonu olmadan array_filter() kullanın ve kalan her değeri göründükleri sırayla ayrı bir satıra yazdırın.
Geri çağırma fonksiyonu olmadan kullanılan array_filter() fonksiyonunun, PHP'nin boş olarak kabul ettiği değerleri otomatik olarak kaldırdığını unutmayın: false, null, 0, boş dizeler "" ve boş diziler.
Girdi formatı: Virgülle ayrılmış değerler içeren tek bir satır (örnek: yes,0,,no,5,,true,false,answer)
Beklenen çıktı: Filtrelenmiş dizide göründükleri sırayla, her bir boş olmayan değerin ayrı bir satıra yazdırılması
Kendin dene
<?php
// Girdiyi oku
$input = trim(fgets(STDIN));
// Virgülle ayrılmış değerleri bir diziye dönüştür
$responses = explode(',', $input);
// TODO: Kodunuzu aşağıya yazın
// Boş değerleri kaldırmak için array_filter() kullanın ve kalan her değeri yazdırın
?>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
1İleri Seviye Fonksiyonlar
Anonim FonksiyonlarClosure'lar ve 'use'Ok Fonksiyonları (Arrow Functions)Geri Çağırma (Callback) Fonksiyonları'call_user_func' KullanımıDeğişken FonksiyonlarReferans ile Değer AktarımıÖz Yinelemeli (Recursive) FonksiyonlarÖzet: Fonksiyon Karması4Çok Boyutlu Diziler
2 Boyutlu Dizi Oluşturma2 Boyutlu Dizi Elemanlarına Erişme2 Boyutlu Dizi Elemanlarını Değiştirmeİç İçe Döngülerle Yineleme2 Boyutlu İlişkisel DizilerÖzet: Basit Izgara Egzersizi2İleri Düzey Dizi İşlemleri
'array_push' ile Ekleme'array_pop' ile Silme'array_unshift' ile Ekleme'array_shift' ile Silmeİndisli Dizileri Birleştirmeİlişkisel Dizileri Birleştirme'array_slice' ile Kesit Alma'in_array' ile Değer Kontrolü'array_search' ile Anahtar AramaÖzet: Çalma Listesi Alıştırması3Dizileri Sıralama
İndisli Dizileri Artan Sırada Sıralamaİndisli Dizileri Azalan Sırada Sıralamaİlişkisel Dizileri Değere Göre Sıralamaİlişkisel Dizileri Anahtara Göre SıralamaDoğal Sıralama (Natural Order)'usort' ile Özel SıralamaÖzet: Liderlik Tablosu Sıralama6Yüksek Mertebeden Dizi Fonksiyonları
'array_map' ile DönüştürmeÖzel Fonksiyon ile 'array_map''array_filter' ile FiltrelemeÖzel Fonksiyon ile 'array_filter''array_reduce' ile İndirgeme'array_walk' ile GezinmeÖzet: Veri İşlemeKendi başına pratik yap: Online PHP derleyicisi