Comparando matrizes de objetos por valores de coluna usando funções de matriz
Muitas linguagens de programação oferecem funções integradas para comparar matrizes. No entanto, essas funções normalmente funcionam com tipos de dados primitivos e matrizes, não com matrizes de objetos. Isso levanta a questão de como comparar arrays de objetos com base em uma propriedade ou coluna específica.
Para resolver isso, o PHP fornece array_udiff, uma função que permite a comparação de arrays de objetos especificando uma função de comparação personalizada. Considere o seguinte exemplo:
$first_array = array( (object) ['id' => '205', 'day_id' => '12'], (object) ['id' => '210', 'day_id' => '15'] ); $second_array = array( (object) ['id' => '205', 'day_id' => '12'], (object) ['id' => '215', 'day_id' => '18'] );
Para comparar esses arrays com base na propriedade 'id', você pode usar uma função anônima como segue:
$diff = array_udiff($first_array, $second_array, function ($obj_a, $obj_b) { return $obj_a->id - $obj_b->id; } );
Esta função subtrai os valores de 'id' dos dois objetos para determinar a diferença. O $diff resultante conterá os objetos no primeiro array que não possuem um valor 'id' correspondente no segundo array.
Em resumo, empregando a função array_udiff e definindo uma função de comparação personalizada, os desenvolvedores podem compare matrizes de objetos com base em propriedades ou colunas específicas, proporcionando flexibilidade nas tarefas de análise de dados.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3