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_filter (array, callback_function)

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_reduce(array,callback_function,initial)

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));

?>

5-Kiraz-Mandalin-Şeftali

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:

15


php array_map

İ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:

50

İ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:

211

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:

1 // true

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:

1 // true

Ö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

php array_map, array_filter, array_reduce

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

php array_map, array_filter, array_reduce

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

php array_map, array_filter, array_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.


Lütfen konu haricinde soru sormayın cevaplanmayacaktır. Yorumunuz onaylandıktan sonra yayınlanacaktır. Lütfen Yukarıda ki mesajları okuyun tekrar aynı soruları sormayın.

4386

KATEGORİ
  • HTML
  • CSS
  • PHP
  • JQUERY
  • PHOTOSHOP
  • JavaScript
  • Web Dünyası
  • Linux
  • MİTHRİL FRAMEWORK
  • Laravel
  • Git
  • React
POPÜLER MAKALE
  • 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
ETİKET
WEBCEBİR © 2013 Tüm hakları saklıdır.