International PHP Conference Berlin 2025

array_uintersect_uassoc

(PHP 5, PHP 7, PHP 8)

array_uintersect_uassocCalcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les index des deux tableaux en utilisant une fonction de rappel séparée

Description

array_uintersect_uassoc(
    array $array1,
    array ...$arrays,
    callable $value_compare_func,
    callable $key_compare_func
): array

Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données et les index des deux tableaux en utilisant une fonction de rappel séparée.

Liste de paramètres

array1

Le premier tableau.

arrays

Tableaux supplémentaires

value_compare_func

La fonction de comparaison doit retourner un entier inférieur à, égal à, ou supérieur à 0 si le premier argument est considéré comme, respectivement, inférieur à, égal à, ou supérieur au second.

callback(mixed $a, mixed $b): int
Attention

Retourner des valeurs non-entières à partir de la fonction de comparaison, telles que float, entraînera une conversion interne de la valeur de retour du rappel en int. Ainsi, des valeurs telles que 0.99 et 0.1 seront toutes deux converties en une valeur entière de 0, ce qui comparera de telles valeurs comme égales.

Attention

La fonction de rappel de tri doit traiter n'importe quelle valeur de n'importe quel tableau dans n'importe quel ordre, quel que soit l'ordre dans lequel elles ont été initialement fournies. Cela s'explique par le fait que chaque tableau individuel est d'abord trié avant d'être comparé aux autres tableaux. Par exemple :

<?php
$arrayA
= ["chaîne", 1];
$arrayB = [["value" => 1]];
// $item1 et $item2 peuvent être l'une des valeurs suivantes : "chaîne", 1 ou ["value" => 1]
$compareFunc = static function ($item1, $item2) {
$value1 = is_string($item1) ? strlen($item1) : (is_array($item1) ? $item1["value"] : $item1);
$value2 = is_string($item2) ? strlen($item2) : (is_array($item2) ? $item2["value"] : $item2);
return
$value1 <=> $value2;
};
?>

key_compare_func

Fonction de rappel utilisée pour la comparaison des clés.

Valeurs de retour

Retourne un tableau contenant toutes les valeurs du tableau array qui sont présentes dans tous les arguments.

Exemples

Exemple #1 Exemple avec array_uintersect_uassoc()

<?php
$array1
= array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "GREEN", "B" => "brown", "yellow", "red");

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

L'exemple ci-dessus va afficher :

Array
(
    [a] => green
    [b] => brown
)

Voir aussi

  • array_uintersect() - Calcule l'intersection de deux tableaux, compare les données en utilisant une fonction de rappel
  • array_intersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur les index
  • array_intersect_uassoc() - Calcule l'intersection de deux tableaux avec des tests sur les index, compare les index en utilisant une fonction de rappel
  • array_uintersect_assoc() - Calcule l'intersection de deux tableaux avec des tests sur l'index, compare les données en utilisant une fonction de rappel

add a note

User Contributed Notes 1 note

up
2
aidan at php dot net
20 years ago
Please note, the correct function synopsis is:

array array_uintersect_uassoc ( array array1, array array2 [, array ...], callback data_compare_func, callback key_compare_func)

You may specifiy as many arrays as you like, but the last two parameters must be valid call back functions.
To Top