Funkcija array_uintersect

Funkcija array_uintersect apskaičiuoja masyvų sankirtą, naudodama callback funkciją reikšmių palyginimui. Ji grąžina masyvą, kuriame yra visi elementai iš pirmojo masyvo, esantys visuose kituose masyvuose. Reikšmių palyginimas vyksta naudojant vartotojo callback funkciją.

Sintaksė

phparray_uintersect(array $array1, array $array2, ..., callable $value_compare_func): array;

Pavyzdys

Raskime dviejų masyvų sankirtą, lygindami jų reikšmes naudodami callback funkciją:

php<?php
  $array1 = [1, 2, 3, 4, 5];
  $array2 = [2, 4, 6, 8, 10];
  
  $res = array_uintersect($array1, $array2, function($a, $b) {
    if ($a === $b) {
      return 0;
    }
    return ($a > $b) ? 1 : -1;
  });
  
  print_r($res);
?>

Kodo vykdymo rezultatas:

php[2, 4]

Pavyzdys

Masyvų su eilutėmis palyginimas naudojant vartotojo funkciją:

php<?php
  $array1 = ['a', 'b', 'c', 'd', 'e'];
  $array2 = ['b', 'd', 'f', 'h', 'j'];
  
  $res = array_uintersect($array1, $array2, function($a, $b) {
    return strcmp($a, $b);
  });
  
  print_r($res);
?>

Kodo vykdymo rezultatas:

php['b', 'd']

Taip pat žiūrėkite

  • funkciją array_intersect,
    kuri apskaičiuoja masyvų sankirtą
  • funkciją array_intersect_assoc,
    kuri apskaičiuoja masyvų sankirtą su papildomu indekso patikrinimu
  • funkciją array_uintersect_assoc,
    kuri apskaičiuoja masyvų sankirtą su papildomu indekso patikrinimu, naudodama callback funkciją