array_udiff_assoc funksiyasi

array_udiff_assoc funksiyasi birinchi massivda mavjud bo'lgan, lekin keyingi massivlarda yo'q bo'lgan barcha elementlarni o'z ichiga olgan massivni qaytaradi. Kalitlarni solishtirish PHP ning o'rnatilgan mexanizmi orqali, qiymatlarni esa foydalanuvchi tomonidan belgilangan callback-funksiya orqali amalga oshiriladi.

Sintaksis

phparray_udiff_assoc(array $array1, array $array2, ..., callable $value_compare_func): array

Misol

Foydalanuvchi funksiyasi bilan massivlarni solishtirish:

php<?php
  function compare($a, $b) {
    return $a <=> $b;
  }

  $array1 = ["a" => "green", "b" => "brown", "c" => "blue"];
  $array2 = ["a" => "green", "b" => "yellow", "d" => "blue"];
  
  print_r(array_udiff_assoc($array1, $array2, "compare"));
?>

Kodni bajarish natijasi:

phpArray
(
  [b] => brown
  [c] => blue
)

Misol

Raqamli indekslar bilan solishtirish:

php<?php
  function numCompare($a, $b) {
    return $a - $b;
  }

  $array1 = [10 => "apple", 20 => "banana", 30 => "cherry"];
  $array2 = [10 => "pear", 20 => "banana", 40 => "cherry"];
  
  print_r(array_udiff_assoc($array1, $array2, "strcmp"));
?>

Kodni bajarish natijasi:

phpArray
(
  [10] => apple
  [30] => cherry
)

Misol

Murakkab ob'ektlarni solishtirish:

php<?php
  class Product {
    public $id;
    public $name;
    
    public function __construct($id, $name) {
      $this->id = $id;
      $this->name = $name;
    }
  }

  function objCompare($a, $b) {
    return strcmp($a->name, $b->name);
  }

  $products1 = [
    "p1" => new Product(1, "Laptop"),
    "p2" => new Product(2, "Phone")
  ];
  
  $products2 = [
    "p1" => new Product(3, "Tablet"),
    "p3" => new Product(2, "Phone")
  ];
  
  print_r(array_udiff_assoc($products1, $products2, "objCompare"));
?>

Kodni bajarish natijasi:

phpArray
(
  [p1] => Product Object
    (
      [id] => 1
      [name] => Laptop
    )
)

Shuningdek qarang

  • array_diff_assoc funksiyasi,
    bu indekslarni tekshirish bilan massivlar farqini hisoblaydi
  • array_udiff funksiyasi,
    bu callback-funksiya bilan massivlar farqini hisoblaydi (indekslarni tekshirmasdan)