PHP Array_filter ve Array_reduce Nedir?
PHP'deki bu fonksiyon, aynı zamanda bir geri arama fonksiyonu olarak da adlandırılan, kullanıcı tanımlı bir fonksiyon kullanarak bir dizinin öğelerini filtrelemek için kullanılır. Array_filter()
fonksiyonu, dizideki her değerin üzerinde tekrarlanarak bunları kullanıcı tanımlı fonksiyon veya geri çağırma fonksiyonundan geçirir. Eğer geri çağırma fonksiyonu true
döndürürse, dizinin geçerli değeri sonuç dizisine döndürülür, aksi takdirde sonuç verilmez. Bu şekilde dizinin anahtarları korunur, yani orijinal dizideki ve çıktı dizisindeki öğenin anahtarı aynı olur.
Sözdizimi:
array (zorunlu): Bu, filtre işleminin gerçekleştirileceği girdi dizisini ifade eder.
callback_function (isteğe bağlı): Kullanıcı tanımlı fonksiyonu ifade eder. Fonksiyon sağlanmazsa, dizinin tüm FALSE
değerine eşit olan girişleri kaldırılır.
Dönüş Değeri : Fonksiyon filtrelenmiş bir dizi döndürür.
Aşağıda, array_filter()
fonksiyonu kullanarak bir dizideki öğelerin bile elemanlarının nasıl döndürüleceğini veya filtreleneceğini gösteren bir program bulunmaktadır. Ekrana çift sayıları yazalım.
<?php
function Even($arr)
{
if($arr %2==0)
return TRUE;
else
return FALSE;
}
$array = array(12, 0, 20, 18, 27, 33, 46);
echo "<pre>";
print_r(array_filter($array, "Even"));
echo "</pre>";
?>
ÇIKTI:
Array ( [0] => 12 [1] => 0 [2] => 20 [3] => 18 [6] => 46 )
Bir diziden boş ya da yanlış değerleri kaldırmak ya da filtrelemek için PHP array_filter()
fonksiyonu kullanabilirsiniz. Bu fonksiyon genellikle bir geri çağırma fonksiyonu kullanan bir dizinin değerlerini filtreler, ancak geri çağırma fonksiyonu belirtilmezse, FALSE
boş bir dize veya bir NULL
değer gibi eşit olan tüm diziler kaldırılır .
<?php
$data = array( null, true, false, 0, 1, 11, '', 'test' );
echo "<pre>";
print_r(array_filter($data));
echo "</pre>";
?>
ÇIKTI:
Array ( [1] => 1 [4] => 1 [5] => 11 [7] => test )
Bir diziden boş değerleri silebiliriz ve daha sonra dizi elemanlarını yeniden indeksleriz. Bunun için array_values()
ve array_filter()
fonksyonunu birlikte kullanırız.
<?php
$arr = array("PHP", "HTML", "CSS", "", "JavaScript", null, 0);
echo "<pre>";
print_r(array_values(array_filter($arr)));
echo "</pre>";
?>
ÇIKTI:
Array ( [0] => PHP [1] => HTML [2] => CSS [3] => JavaScript )
Array_values()
fonksiyonu, bir dizideki tüm değerleri içeren bir dizi döner. Döndürülen dizide 0'dan başlayıp 1 ile artan sayısal anahtarlar bulunur.
PHP Array_reduce()
PHP array_reduce
PHP'de yerleşik bir fonksiyondur. Bu fonksiyon bir diziyi integer, float veya string olabilen tek bir değere indirger. Kullanıcı tanımlı bir geri çağırma fonksiyonu kabul eder.
Not: Dizi boşsa ve başlangıç geçilmezse, bu fonksiyon NULL
döndürür.
Sözdizimi :
array (zorunlu): Bu bir izleyici parametredir ve azaltmamız gereken orijinal diziyi ifade eder.
callback_function: İkincisi, diziyi azaltmak için kullanmak istediğimiz geri çağırma fonksiyonu geçmemiz gerekir.
initial: Üçüncü parametre, fonksiyona gönderilen ilk değerdir. Ayrıca, null
olarak varsayılan değere sahip isteğe bağlı bir parametredir.
Geri dönüş değeri:
PHP array_reduce
Fonksiyonu, tek bir değer döndürür. Tam sayı, kayan nokta veya dize türünde olabilir.
Geri arama fonksiyonu
<?php function function_name ($accumulator, $value) { } ?>
Fonksiyon iki parametre içermelidir.
accumulator: İlk parametre, devam eden etkin bir şekilde bir araya getirilmiş sonucu depolayan bir akümülatördür. Başlangıç değeri belirtilmediği sürece boş değerle başlar.
value: İkinci parametre, her azaltma aşamasında iletilen geçerli değerdir.
İlk parametreyi ayarlayan Örnek yapalım
<?php
function myfunction($v1,$v2)
{
return $v1 . "-" . $v2;
}
$a=array("Kiraz","Mandalin","Şeftali");
print_r(array_reduce($a,"myfunction",5));
?>
Dizin elemanlarını toplayan örnek yapalım
<?php
function addv($a, $b)
{
$a += $b;
return $a;
}
$z = array(1, 2,3,4,5);
$x=array_reduce($z,"addv");
echo $x;
?>
ÇIKTI:
İlk parametreyi ayarlayan toplama işlemli Örnek yapalım
<?php
function myfunction($v1,$v2)
{
return $v1+$v2;
}
$a=array(10,15,20);
print_r(array_reduce($a,"myfunction",5));
?>
ÇIKTI:
İlk parametre olan 5 değeri ile toplanmıştır.
Dizideki en büyük sayı bulalım
<?php
$result = array_reduce([10, 23, 211, 34, 25], function($carry, $item){
return $item > $carry ? $item : $carry;
});
echo $result;
?>
ÇIKTI:
Tüm öğeler 100'den fazla mı
<?php
$result = array_reduce([101, 230, 210, 341, 251], function($carry, $item){
return $carry && $item > 100;
}, true); // varsayılan değer true olmalı
echo $result;
?>
ÇIKTI:
100'den az olan bir sayı varmı
<?php
$result = array_reduce([101, 230, 21, 341, 251], function($carry, $item){
return $carry || $item < 100;
}, false); // varsayılan değer false ayarlanmalıdır
echo $result;
?>
ÇIKTI:
Örnek dizide 100'den küçük sayı olduğu için sonuç 1 yani true
Array_map, Array_filter ve Aray_reduce arasnda farklar
Map
Bir öğelerden oluşan diziniz var ve her birini dönüştürmek istiyorsunuz. Sonuç, işlenen öğeleri içeren tam olarak aynı uzunlukta yeni bir dizidir. Array_map konusu için tıkla.
Filter
Bir diziniz var ve belirli öğeleri filtrelemek istiyorsunuz. Sonuç, aynı öğelere sahip, ancak bazıları hariç tutulan yeni bir dizidir. Yeni dizinin uzunluğu aynı olacaktır (hiçbir değer belirtilmezse) veya orjinalden daha kısa olacaktır.
Reduce
Bir öğelerden oluşan diziniz var ve her bir öğeyi yineleyerek yeni bir değer hesaplamak istiyorsunuz. Sonuç, herhangi bir şey, başka bir dizi, yeni bir nesne, bir boolean değeri vb. Olabilir.
- HTML
- CSS
- PHP
- JQUERY
- PHOTOSHOP
- JavaScript
- Web Dünyası
- Linux
- MİTHRİL FRAMEWORK
- Laravel
- Git
- React
- HTML LİNK(Bağlantı)EKLEME - LİNK VERME
- HTML YAZI VE RESİM ORTALAMA
- HTML RESME LİNK VERME
- HTML FORM OLUŞTURMA
- CSS YATAY MENÜ YAPIMI
- HTML RESİM EKLEME
- CSS (BOYUT) GENİŞLİK VE YÜKSEKLİK (Width-Height)
- HTML DİV ve SPAN NEDİR?
- HTML ARKAPLANA MÜZİK EKLEME
- KALİTE KAYBETMEDEN RESİMLERİ BÜYÜTME