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

phparray_udiff(array1, array2, ..., callback): array;

Příklad

Porovnejme dvě pole čísel pomocí callback funkce pro porovnání:

php<?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:

php[1, 2]

Příklad

Porovnejme pole řetězců pomocí uživatelské funkce pro porovnání:

php<?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:

php['a', 'b']

Příklad

Porovnání s více poli:

php<?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:

php[1]

Viz také