PHPCon Poland 2024

array_uintersect_uassoc

(PHP 5, PHP 7, PHP 8)

array_uintersect_uassocDeğerleri ve indisleri farklı geriçağırım işlevleriyle karşılaştırarak dizilerin kesişimini hesaplarken ek olarak indislere de bakar

Açıklama

array_uintersect_uassoc(
    array $dizi,
    array ...$diziler,
    callable $değer_karş_işlevi,
    callable $anh_karş_işlevi
): array

Değerleri ve indisleri farklı geriçağırım işlevleriyle karşılaştırarak dizilerin kesişimini hesaplarken ek olarak indislere de bakar. array_uintersect() işlevinin tersine karşılaştırmada anahtarlar kullanılır. Değerler ve anahtarlar ayrı karşılaştırma işlevleri kullanılarak karşılaştırılırlar.

Bağımsız Değişkenler

dizi

İlk dizi.

diziler

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

değer_karş_işlevi

Karşılaştırma işlevinin, ilk bileşeninin ikinci bileşenden küçük, eşit veya büyük olması durumunda sıfırdan küçük, eşit veya büyük bir tamsayı döndürmesi gerekir.

callback(mixed $a, mixed $b): int
Dikkat

Karşılaştırma işlevinden float gibi tamsayı olmayan değerlerin döndürülmesi, geri çağırım işlevinin dönüş değerinin dahili olarak int türüne dönüştürülmesiyle sonuçlanır. Bu nedenle 0.99 ve 0.1 gibi değerlerin her ikisi de 0 tamsayı değerine dönüştürüp bunlar eşit değerler olarak karşılaştırılacaktır.

Dikkat

Sıralama geri çağrısı, başlangıçta sağlandıkları sıraya bakılmaksızın, herhangi bir dizideki herhangi bir değeri herhangi bir sırada işlemelidir. Bunun nedeni, her bir dizinin diğer dizilerle karşılaştırılmadan önce ilk olarak sıralanmasıdır. Örneğin:

<?php
$arrayA
= ["string", 1];
$arrayB = [["value" => 1]];

// $item1 ve $item2 "string", 1 veya [“value” => 1] seçeneklerinden herhangi biri olabilir
$compareFunc = static function ($item1, $item2) {
$value1 = is_string($item1) ? strlen($item1) : (is_array($item1) ? $item1["value"] : $item1);
$value2 = is_string($item2) ? strlen($item2) : (is_array($item2) ? $item2["value"] : $item2);
return
$value1 <=> $value2;
};
?>

anh_karş_işlevi

Anahtarları karşılaştırmak için geriçağırım işlevi.

Dönen Değerler

Tüm bağımsız değişkenlerde mevcut tüm dizi değerlerini içeren bir dizi döndürür.

Örnekler

Örnek 1 - array_uintersect_uassoc() örneği

<?php
$dizi1
= array("a" => "mor", "b" => "sarı", "c" => "mavi", "kırmızı");
$dizi2 = array("a" => "MOR", "B" => "sarı", "yeşil", "kırmızı");

print_r(array_uintersect_uassoc($dizi1, $dizi2, "strcasecmp", "strcasecmp"));
?>

Yukarıdaki örneğin çıktısı:

Array
(
    [a] => mor
    [b] => sarı
)

Ayrıca Bakınız

  • array_uintersect() - Veriyi bir geriçağırım işleviyle karşılaştırarak dizilerin kesişimini hesaplar
  • array_intersect_assoc() - Dizilerin kesişimini hesaplarken ek olarak indisleri de karşılaştırır
  • array_intersect_uassoc() - Dizilerin kesişimini hesaplarken ek olarak bir geriçağırım işlevi üzerinden indisleri de karşılaştırır
  • array_uintersect_assoc() - Veriyi bir geriçağırım işleviyle karşılaştırarak dizilerin kesişimini hesaplarken ek olarak indislere de bakar

add a note

User Contributed Notes 1 note

up
2
aidan at php dot net
19 years ago
Please note, the correct function synopsis is:

array array_uintersect_uassoc ( array array1, array array2 [, array ...], callback data_compare_func, callback key_compare_func)

You may specifiy as many arrays as you like, but the last two parameters must be valid call back functions.
To Top