array_intersect_uassoc

(PHP 5, PHP 7, PHP 8)

array_intersect_uassocErmittelt die Schnittmenge von Arrays mit Indexprüfung; vergleicht Indizes mit einer Callbackfunktion

Beschreibung

array_intersect_uassoc(array $array, array ...$arrays, callable $key_compare_func): array

array_intersect_uassoc() gibt ein Array mit allen Werten von array, die auch in allen anderen Argumenten enthalten sind, zurück. Beachten Sie, dass anders als von array_intersect() die Schlüssel zum Vergleich herangezogen werden.

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.

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 Werte in allen Argumenten existieren.

Beispiele

Beispiel #1 array_intersect_uassoc()-Beispiel

<?php
$array1
= array("a" => "grün", "b" => "braun", "c" => "blau", "rot");
$array2 = array("a" => "GRÜN", "B" => "braun", "gelb", "rot");

print_r(array_intersect_uassoc($array1, $array2, "strcasecmp"));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

Array
(
    [b] => braun
)

Siehe auch

  • array_intersect() - Ermittelt die Schnittmenge von Arrays
  • array_intersect_assoc() - Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung
  • array_uintersect_assoc() - Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten mittels einer Callbackfunktion
  • array_uintersect_uassoc() - Ermittelt die Schnittmenge von Arrays mit zusätzlicher Indexprüfung, vergleicht Daten und Schlüssel mittels separaten Callbackfunktionen
  • array_intersect_key() - Ermittelt die Schnittmenge von Arrays, indem es die Schlüssel vergleicht
  • array_intersect_ukey() - Ermittelt die Schnittmenge zweier Arrays mittels eines durch eine Callbackfunktion durchgeführten Schlüsselvergleiches

add a note add a note

User Contributed Notes 1 note

up
-32
swapniltiwhane at gmail dot com
11 years ago
$a = array(
        array(
                'id' => 15,
                'name' => 'John',
                'color' => 'red',
        ),
        array(
                'id' => 22,
                'name' => 'Elise',
                'color' => 'blue',
        ),
        array(
                'id' => 30,
                'name' => 'Mark',
                'color' => 'red',
        ),
);

$b = array(
        array(
                'id' => 15,
                'name' => 'Nancy',
                'color' => 'black',
        ),
        array(
                'id' => 20,
                'name' => 'Elise',
                'color' => 'blue',
        ),
        array(
                'id' => 30,
                'name' => 'Mark',
                'color' => 'red',
        ),
        array(
                'id' => 40,
                'name' => 'John',
                'color' => 'orange',
        ),
);

function compare_ids($a, $b)
{
    return ((bool)($a['id'] - $b['id']));
}

print_r(array_intersect_uassoc($a, $b, "compare_ids"));
To Top