Funkce array_udiff
Funkce array_udiff porovnává pole a vrací prvky z prvního pole, které se nenacházejí v následujících polích. Pro porovnání prvků se používá callback funkce, kterou si definujete sami. První parametr je hlavní pole pro porovnání, následující parametry jsou pole, se kterými se první porovnává.
Syntaxe
array_udiff(array1, array2, ..., callback): array;
Příklad
Porovnejme dvě pole čísel pomocí callback funkce pro porovnání:
<?php
$arr1 = [1, 2, 3, 4, 5];
$arr2 = [3, 4, 5, 6, 7];
$res = array_udiff($arr1, $arr2, function($a, $b) {
return $a <=> $b;
});
print_r($res);
?>
Výsledek provedení kódu:
[1, 2]
Příklad
Porovnejme pole řetězců pomocí uživatelské funkce pro porovnání:
<?php
$arr1 = ['a', 'b', 'c', 'd'];
$arr2 = ['c', 'd', 'e', 'f'];
$res = array_udiff($arr1, $arr2, function($a, $b) {
return strcmp($a, $b);
});
print_r($res);
?>
Výsledek provedení kódu:
['a', 'b']
Příklad
Porovnání s více poli:
<?php
$arr1 = [1, 2, 3, 4, 5];
$arr2 = [2, 3, 4];
$arr3 = [3, 4, 5];
$res = array_udiff($arr1, $arr2, $arr3, function($a, $b) {
return $a <=> $b;
});
print_r($res);
?>
Výsledek provedení kódu:
[1]
Viz také
-
funkci
array_diff,
která vypočítá rozdíl polí -
funkci
array_intersect,
která vypočítá průnik polí -
funkci
array_udiff_assoc,
která vypočítá rozdíl s dodatkovou kontrolou indexů