array_diff

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

array_diffDizilerin farkını hesaplar

Açıklama

array_diff(array$dizi, array...$diziler): array

dizi ile bir veya daha fazla diziyi karşılaştırır ve diğer dizilerde bulunmayan değerleri dizi içinde döndürür.

Bağımsız Değişkenler

dizi

Karşılaştırılacak dizi.

diziler

Karşılaştırılacak diğer diziler.

Dönen Değerler

Diğer dizilerde mevcut olmayan dizi girdilerinden oluşan bir dizi ile döner. dizi içindeki anahtarlar korunur.

Sürüm Bilgisi

Sürüm: Açıklama
8.0.0 Bu işlev artık yalnızca tek bir bağımsız değişken ile çağrılabiliyor. Evvelve en az iki bağımsız değişken gerekirdi.

Örnekler

Örnek 1 - array_diff() örneği

<?php
$dizi1
= array("a" => "green", "red", "blue", "red");
$dizi2 = array("b" => "green", "yellow", "red");
$result = array_diff($dizi1, $dizi2);

print_r($result);
?>

$dizi1 içinde aynı değerde birden fazla eleman varsa hepsi tek bir girdi kabul edilir ve çıktı şöyle olur:

Array ( [1] => blue )

Örnek 2 - Eşleşmeyen türler ile array_diff()

İki elemanın eşit olması için sadece ve sadece (string) $elem1 === (string) $elem2 olmalıdır. Başka bir deyişle, dize gösterimleri aynı olmalıdır.

<?php
// dizi dizeye dönüşürülemezse bir uyarı üretilir.
$source = [1, 2, 3, 4];
$filter = [3, 4, [5], 6];
$result = array_diff($source, $filter);

// nesneler dizeye dönüştürülebildiğinden burada sorun çıkmaz.
class S {
private
$v;

public function
__construct(string $v) {
$this->v = $v;
}

public function
__toString() {
return
$this->v;
}
}

$source = [new S('a'), new S('b'), new S('c')];
$filter = [new S('b'), new S('c'), new S('d')];

$result = array_diff($source, $filter);

// $result tek bir S('a') örneği içerir
?>

Başka bir karşılaştırma işlevi kullanmak isterseniz array_udiff() işlevine bakın.

Notlar

Bilginize:

Bu işlev n boyutlu bir dizinin sadece bir boyutunu karşılaştırır. Daha derinliğine karşılaştırmalar yapmak için array_diff($dizi1[0], $dizi2[0]); sözdizimini kullanabilirsiniz.

Ayrıca Bakınız

  • array_diff_assoc() - Dizilerin farkını hesaplarken ek olarak indisleri de karşılaştırır
  • array_udiff() - Veri karşılaştırması için bir geriçağırım işlevi kullanarak diziler arasındaki farkı bulur
  • array_intersect() - Dizilerin kesişimini hesaplar
  • array_intersect_assoc() - Dizilerin kesişimini hesaplarken ek olarak indisleri de karşılaştırır
To Top