PHP - array_uintersect
Třída
Metoda - array_uintersect
(PHP 5, PHP 7)
Funkce porovnává hodnoty předaných polí na základě uživatelem definované porovnávací funkce a vrací jejích průnik.
Procedurální
- function array_uintersect (array $array1, array $array2, array $..., callable $value_compare_func) : array
- function callback () : array
Parametry
| Název | Datový typ | Výchozí hodnota | Popis |
|---|---|---|---|
| $array1 | array | Hlavní pole, které je porovnávané s ostatními poli. | |
| $array2 | array | Pole, které je porovnávané s prvním polem. | |
| $... | array | Další pole, která jsou porovnávaná s prvním polem. | |
| $value_compare_func | callable | Určuje porovnávací funkci. Funkce musí vrátit celé záporné číslo, když je první argument funkce menší než argument druhý, celé kladné číslo pokud je větší nebo nulu pokud jsou stejné. Poznámka: Pokud se porovnává textový řetězec, tak záleží na velikosti znaků (je case sensitive). |
Návratové hodnoty
Vrací: array
Funkce vrací pole, které obsahuje ty prvky z prvního pole, které se nachází ve všech ostatních polích.
Příklady
Funkce porovnává hodnoty jednotlivých polí, a proto nezáleží, jestli se jedná o indexové nebo asociativní pole.
<?php
// Porovnávací funkce:
function porovnej_hodnoty($hodnota1, $hodnota2) {
if ($hodnota1 == $hodnota2) {
return 0;
}
return ($hodnota1 > $hodnota2) ? 1 : -1;
}
$seminar1 = array("Terminator", "Rambo", "McCane", "Tarzan", "Batman");
$seminar2 = array("Superman", "Norris", "Rambo", "Hulk", "Batman");
$seminar3 = array("Rambo", "Tarzan", "batman", "Norris");
// Funkce porovnává hodnoty na základě naší porovnávací funkce
$vysledek = array_uintersect($seminar1, $seminar2, $seminar3, "compare_values");
// Jediný ve výsledku je Rambo.
// Batman je v posledním poli zadán s malým "b", proto se ve výsledku nenachází.
print_r($vysledek);
Upravíme naší porovnávací funkci, aby všechny hodnoty převedla na malá písmena.
<?php
function porovnej_hodnoty_2($hodnota1, $hodnota2) {
if (strtolower($hodnota1) == strtolower($hodnota2)) {
return 0;
}
return (strtolower($hodnota1) > strtolower($hodnota2)) ? 1 : -1;
}
$seminar1 = array("Terminator", "Rambo", "McCane", "Tarzan", "Batman");
$seminar2 = array("Superman", "Norris", "Rambo", "Hulk", "Batman");
$seminar3 = array("Rambo", "Tarzan", "batman", "Norris");
$vysledek = array_uintersect($seminar1, $seminar2, $seminar3, "porovnej_hodnoty_2");
// Ve výsledku je teď i Batman.
print_r($vysledek);
Související manuály
- function array_intersect (array $array1, array $array2, array $...) : array

