Funksie array_udiff_assoc
Funksie array_udiff_assoc gee 'n array terug wat alle elemente van die eerste array bevat wat afwesig is in die daaropvolgende arrays. Sleutels word vergelyk deur PHP se ingeboude meganisme, en waardes word vergelyk met behulp van 'n gebruiker-gedefinieerde callback-funksie.
Sintaksis
array_udiff_assoc(array $array1, array $array2, ..., callable $value_compare_func): array
Voorbeeld
Vergelyking van arrays met 'n gebruikerfunksie:
<?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"));
?>
Uitslag van kode-uitvoering:
Array
(
[b] => brown
[c] => blue
)
Voorbeeld
Vergelyking met numeriese indekse:
<?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"));
?>
Uitslag van kode-uitvoering:
Array
(
[10] => apple
[30] => cherry
)
Voorbeeld
Komplekse vergelyking van objekte:
<?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"));
?>
Uitslag van kode-uitvoering:
Array
(
[p1] => Product Object
(
[id] => 1
[name] => Laptop
)
)
Sien ook
-
funksie
array_diff_assoc,
wat die verskil van arrays met indekskontrole bereken -
funksie
array_udiff,
wat die verskil van arrays met 'n callback-funksie bereken (sonder indekskontrole)