array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'pt_BR', ), 'this' => array ( 0 => 'function.array-uintersect-assoc.php', 1 => 'array_uintersect_assoc', ), 'up' => array ( 0 => 'ref.array.php', 1 => 'Funções para Array', ), 'prev' => array ( 0 => 'function.array-udiff.php', 1 => 'array_udiff', ), 'next' => array ( 0 => 'function.array-uintersect-uassoc.php', 1 => 'array_uintersect_uassoc', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'pt_BR', 'path' => 'reference/array/functions/array-uintersect-assoc.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 5, PHP 7, PHP 8)
array_uintersect_assoc — Computa a interseção de arrays com checagem adicional de índice, compara os dados utilizando uma função de callback
Computa a interseção de arrays com checagem adicional de índice, compara os dados utilizando uma função de callback.
Note que as chaves são utilizadas na comparação, diferente de array_uintersect(). Os dados são comparados utilizando funções de callback.
array
Primeiro array.
arrays
Arrays para comparar.
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;
};
?>
Retorna um array contendo todos os valores de
array
que estão presentes em todos os argumentos.
Exemplo #1 Exemplo de array_uintersect_assoc()
<?php
$array1 = array("a" => "verde", "b" => "marrom", "c" => "azul", "vermelho");
$array2 = array("a" => "VERDE", "B" => "marrom", "amarelo", "vermelho");
print_r(array_uintersect_assoc($array1, $array2, "strcasecmp"));
?>
O exemplo acima produzirá:
Array ( [a] => verde )