1
resposta

PHP Diferença entre arrays - array_diff

6, 'João' => 8, 'Ana' => 10, 'Roberto' => 7, 'Maria' => 9, ]; $notasSegundoBimestre = [ 'João' => 8, 'Ana' => 10, 'Roberto' => 7, 'Maria' => 9, 'Paulo' => 7.5, ]; Notei que ele faz a diferenciação não pelos valores e sim pela posiçao em que passamos os arrays dentro da função array_diff var_dump( array_diff($notasPrimeiroBimestre, $notasSegundoBimestre)); var_dump(array_diff( $notasSegundoBimestre, $notasPrimeiroBimestre)); array(1) { ["Vinicios"]=> int(6) } array(1) { ["Paulo"]=> float(7.5) } Tipo ele tá dizendo o que o primeiro tem que não tem no segundo ["Vinicios"]=>int(6) o que o segundo tem que não tem no primeiro ["Paulo"]=>float(7.5) Estou errado?
1 resposta

Olá Mauro!

Você está absolutamente certo na sua observação sobre o funcionamento da função array_diff em PHP. Essa função realmente compara os valores dos arrays passados como parâmetros e retorna um array contendo todos os valores do primeiro array que não estão presentes nos outros arrays fornecidos.

Portanto, quando você executa array_diff($notasPrimeiroBimestre, $notasSegundoBimestre), ele está retornando os valores que existem no $notasPrimeiroBimestre mas não existem no $notasSegundoBimestre, independentemente das chaves associadas a esses valores.

A título de informação, quando precisar compartilhar códigos aqui no fórum é interessante dar uma boa visibilidade para ele. Para isso, você pode seguir os passos que compartilho a seguir. Sem a formatação correta, o código acaba ficando escondido e de difícil visualização.

  1. Selecione o trecho com o código no seu post;

  2. Aqui no fórum, procure o ícone </>. É a sétima opção na aba superior do nosso editor de texto;

  3. Clique no ícone comentado acima, certificando-se que está com todo o trecho de código selecionado.

Para confirmar se está tudo certo, você pode pré-visualizar seu post clicando no penúltimo ícone da esquerda para a direita, ou também usando o atalho F9.

No mais, se precisar de ajuda ou tiver alguma dúvida relacionada aos seus estudos, o fórum é o melhor lugar para te ajudar.

Bons estudos!