array_uintersect_uassoc

(PHP 5, PHP 7, PHP 8)

array_uintersect_uassocComputa a interseção de arrays com checagem adicional de índice, compara os dados e os índices utilizando funções de callback separadas

Descrição

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

Computa a interseção de arrays com checagem adicional de índice, compara dados e índices utilizando funções de callback separadas.

Parâmetros

array1

Primeiro array.

arrays

Outros arrays.

value_compare_func

A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.

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

Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como 0.99 e 0.1 serão convertidos para o valor inteiro 0, o que comparará esses valores como iguais.

Cuidado

A função chamada de ordenação deve lidar com qualquer valor de qualquer array em qualquer ordem, independentemente da ordem em que eles foram originalmente fornecidos. O motivo é que cada array individual é primeiramente ordenado antes de ser comparado com outros arrays. Por exemplo:

<?php
$arrayA
= ["string", 1];
$arrayB = [["value" => 1]];
// $item1 e $item2 podem ser "string", 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

Função para comparação das chaves (índices).

Valor Retornado

Retorna um array contendo todos os valores de array1 que estão presentes em todos os argumentos.

Exemplos

Exemplo #1 Exemplo de array_uintersect_uassoc()

<?php
$array1
= array("a" => "verde", "b" => "marrom", "c" => "azul", "vermelho");
$array2 = array("a" => "VERDE", "B" => "marrom", "amarelo", "vermelho");

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

O exemplo acima produzirá:

Array
(
    [a] => verde
    [b] => marrom
)

Veja Também

  • array_uintersect() - Computa a interseção de array, comparando dados com uma função callback
  • array_intersect_assoc() - Computa a interseção de arrays com uma adicional verificação de índice
  • array_intersect_uassoc() - Computa a interseção de arrays com checagem de índice adicional, compara índices por uma função de callback
  • array_uintersect_assoc() - Computa a interseção de arrays com checagem adicional de índice, compara os dados utilizando uma função de callback

add a note add a note

User Contributed Notes 1 note

up
1
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