Функсияи array_udiff_assoc

Функсияи array_udiff_assoc массиве бармегардонад, ки ҳамаи унсурҳои массиви аввалро дар бар мегирад, ки дар массивҳои баъдина вучуд надоранд. Муқоисаи калидҳо бо механизми дарунсохти PHP иҷро карда мешавад, ва арзишҳо бо ёрии функсияи callback-и корбарӣ.

Синтаксис

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

Намуна

Муқоисаи массивҳо бо функсияи корбарӣ:

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

Натиҷаи иҷрои код:

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

Намуна

Муқоиса бо нишонаҳои ададӣ:

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

Натиҷаи иҷрои код:

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

Намуна

Муқоисаи мураккаби объектҳо:

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

Натиҷаи иҷрои код:

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

Инчунин бубинед

  • функсияи array_diff_assoc,
    ки фарқи массивҳоро бо тафтиши нишонаҳо ҳисоб мекунад
  • функсияи array_udiff,
    ки фарқи массивҳоро бо функсияи callback ҳисоб мекунад (бе тафтиши нишонаҳо)