array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'pt_BR', ), 'this' => array ( 0 => 'function.array-uintersect-uassoc.php', 1 => 'array_uintersect_uassoc', ), 'up' => array ( 0 => 'ref.array.php', 1 => 'Funções para Array', ), 'prev' => array ( 0 => 'function.array-uintersect-assoc.php', 1 => 'array_uintersect_assoc', ), 'next' => array ( 0 => 'function.array-uintersect.php', 1 => 'array_uintersect', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'pt_BR', 'path' => 'reference/array/functions/array-uintersect-uassoc.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 5, PHP 7, PHP 8)
array_uintersect_uassoc — Computa a interseção de arrays com checagem adicional de índice, compara os dados e os índices utilizando funções de callback separadas
$array1
,...$arrays
,$value_compare_func
,$key_compare_func
Computa a interseção de arrays com checagem adicional de índice, compara dados e índices utilizando funções de callback separadas.
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.
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.
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).
Retorna um array contendo todos os valores de
array1
que estão presentes em todos os argumentos.
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 )