Функсияи array_udiff_assoc
Функсияи array_udiff_assoc массиве бармегардонад, ки ҳамаи унсурҳои массиви аввалро дар бар мегирад, ки дар массивҳои баъдина вучуд надоранд. Муқоисаи калидҳо бо механизми дарунсохти PHP иҷро карда мешавад, ва арзишҳо бо ёрии функсияи callback-и корбарӣ.
Синтаксис
array_udiff_assoc(array $array1, array $array2, ..., callable $value_compare_func): array
Намуна
Муқоисаи массивҳо бо функсияи корбарӣ:
<?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"));
?>
Натиҷаи иҷрои код:
Array
(
[b] => brown
[c] => blue
)
Намуна
Муқоиса бо нишонаҳои ададӣ:
<?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"));
?>
Натиҷаи иҷрои код:
Array
(
[10] => apple
[30] => cherry
)
Намуна
Муқоисаи мураккаби объектҳо:
<?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"));
?>
Натиҷаи иҷрои код:
Array
(
[p1] => Product Object
(
[id] => 1
[name] => Laptop
)
)
Инчунин бубинед
-
функсияи
array_diff_assoc,
ки фарқи массивҳоро бо тафтиши нишонаҳо ҳисоб мекунад -
функсияи
array_udiff,
ки фарқи массивҳоро бо функсияи callback ҳисоб мекунад (бе тафтиши нишонаҳо)