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.

Değiştirgeler

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.

Ö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 = [1234];
$filter = [34, [5], 6];
$result array_diff($source$filter);

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

  public function 
__construct(string $v) {
    
$this->$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