NOVINKA: Kurz kybernetické bezpečnosti s akreditací MŠMT, nyní již od 0 Kč. Staň se žádaným profesionálem. Zjisti více:
NOVINKA: Staň se datovým analytikem a získej jistotu práce, lepší plat a nové kariérní možnosti. Více informací:

PHP - array_uintersect

Třída

Kořen \ Bez třídy

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ázevDatový typVýchozí hodnotaPopis
$array1array

Hlavní pole, které je porovnávané s ostatními poli.

$array2array

Pole, které je porovnávané s prvním polem.

$...array

Další pole, která jsou porovnávaná s prvním polem.

$value_compare_funccallable

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
      Aktivity