Ermittelt die Schnittmenge zweier Arrays mittels eines durch eine Callbackfunktion durchgeführten Schlüsselvergleiches

# array_intersect_ukey

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

array_intersect_ukey — Ermittelt die Schnittmenge zweier Arrays mittels eines durch eine Callbackfunktion durchgeführten Schlüsselvergleiches

### Beschreibung

function array_intersect_ukey(array `$array`, array `...$arrays`, callable `$key_compare_func`): array

array_intersect_ukey() gibt ein Array zurück, welches alle Werte von `array` enthält, die Schlüssel besitzen, die in allen anderen Argumenten enthalten sind.

### Parameter-Liste

`array`

  Eingabe-Array für den Vergleich der Arrays.

`arrays`

  Arrays zum Vergleichen von Schlüsseln.

`key_compare_func`

  Die Vergleichsfunktion muss einen Integer kleiner als, gleich oder größer als Null zurückgeben, wenn das erste Argument respektive kleiner, gleich oder größer als das zweite ist.

  function callback(mixed `$a`, mixed `$b`): int
  Achtung

  Wenn die Vergleichsfunktion nicht-ganzzahlige Werte zurückgibt, z. B. vom Typ float, wird der Rückgabewert des Callbacks intern in den Typ int umgewandelt. Werte wie `0.99` und `0.1` werden also beide in einen Integer-Wert von `0` umgewandelt, wodurch diese Werte als gleichwertig eingestuft werden.

### Rückgabewerte

Gibt alle Werte von `array` zurück, deren Schlüssel in allen Argumenten existieren.

### Beispiele

Beispiel #1 array_intersect_ukey()-Beispiel

`<?php
function key_compare_func($key1, $key2)
{
if ($key1 == $key2)
return 0;
else if ($key1 > $key2)
return 1;
else
return -1;
}
$array1 = array('blau' => 1, 'rot' => 2, 'grün' => 3, 'violett' => 4);
$array2 = array('grün' => 5, 'blau' => 6, 'gelb' => 7, 'türkis' => 8);
var_dump(array_intersect_ukey($array1, $array2, 'key_compare_func'));
?>`

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

    array(2) {
      ["blau"]=>
      int(1)
      ["grün"]=>
      int(3)
    }

In unserem Beispiel sehen Sie, dass nur die Schlüssel `'blau'` und `'grün'` in beiden Arrays vorhanden sind und daher zurückgegeben werden. Beachten Sie auch, dass die Werte zu den Schlüsseln `'blau'` und `'grün'` sich in beiden Arrays voneinander unterscheiden. Eine Übereinstimmung wird dennoch festgestellt, da nur die Schlüssel überprüft werden. Die zurückgegebenen Werte sind diejenigen aus `array`.

### Siehe auch

- array_diff() - Ermittelt die Unterschiede zwischen Arrays
- array_udiff() - Ermittelt den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Datenvergleich
- array_diff_assoc() - Berechnet den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung
- array_diff_uassoc() - Berechnet den Unterschied von Arrays mit zusätzlicher Indexprüfung, welche durch eine benutzerdefinierte Callback-Funktion vorgenommen wird
- array_udiff_assoc() - Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht mittels einer Callbackfunktion
- array_udiff_uassoc() - Ermittelt den Unterschied zwischen Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Indizes mittels einer Callbackfunktion
- array_diff_key() - Berechnet den Unterschied zwischen Arrays, indem es die Schlüssel vergleicht
- array_diff_ukey() - Berechnet den Unterschied zwischen Arrays mittels einer Callbackfunktion für den Vergleich der Schlüssel
- array_intersect() - Ermittelt die Schnittmenge von Arrays
- array_intersect_assoc() - Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung
- array_intersect_uassoc() - Ermittelt die Schnittmenge von Arrays mit Indexprüfung; vergleicht Indizes mit einer Callbackfunktion
- array_intersect_key() - Ermittelt die Schnittmenge von Arrays, indem es die Schlüssel vergleicht

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open