Flávio Silveira Programação & Desenvolvimento

  • BLOG
  • SOBRE
  • PORTFOLIO
  • CONTATO

Comparando Arrays e Trazendo os valores diferentes

September 16th, 2009  |  Published in Php, Programação em geral  |  1 Comment

Salve pessoal.

Ontem precisei comparar os resultados de dois arrays e deles trazer os valores que estavam em apenas um dos arrays.

A princípio procurei uma função que fizesse isso pra mim, achei que o array_diff fizesse isso para a gente. Mas me enganei! Não achei uma função com esse resultado.

A função array_diff na verdade traz apenas os valores que constam no primeiro array, mas não constam no segundo.
Exemplo:

<?php

$array1 = array("bola", "quadrado", "triangulo");
$array2 = array("esfera", "quadrado", "triangulo");

$result = array_diff($array1, $array2);
print_r($result);

?>

O resultado do código acima nos retorna um array com o valor “bola”.
Pois é o único valor que consta no primeiro array e não no segundo.

O que eu precisava é que ele me retornasse também os valores que tinham no segundo array e que não constavam no primeiro.

Resolvi da seguinte forma:

<?php

$array1 = array("bola", "quadrado", "triangulo");
$array2 = array("esfera", "quadrado", "triangulo");

$result1 = array_diff($array1, $array2);
$result2 = array_diff($array2, $array1);

$full = array_merge($result1, $result2);

print_r($full);

?>

Primeiro fazemos retornar os valores que estão no primeiro array e não no segundo ($result1).
Em seguida os que estão no segundo array e não no primeiro ($result2).
Após isso unimos os dois arrays através da função array_merge.

E o resultado retornado é [0] => bola [1] => esfera, como esperado.
Bola que está apenas no primeiro array, e esfera que está apenas no segundo.
Os demais valores aparecem em ambos os arrays, logo, ficam de fora.

Adicionem outros elementos aos arrays para testar e confiram os resultados.

Grande Abraço.

Compartilhe
  • Print
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • Live
  • MySpace
  • PDF
  • RSS
  • Twitter
  • email

Posts Relacionados

  • CodeIgniter, Internet Explorer e o tempo de expiração da sessão
  • CodeIgniter: Use a Global $_SERVER no config para ganhar dinamismo com subdomínios.
  • Habilitando Layouts no CodeIgniter (Template Engine) – Parte 2

Comentários

Feed
  1. Renie disse:

    November 9th, 2009 at 07:44 (#)

    simples e funcional, meu espirido de POG ja me mandaria fazer

    print_r($result1, $result2);

    ou ainda

    $array = $result1 . $result2;

    huashusahusa

Deixe um comentário

Flávio Silveira

Programação & Desenvolvimentominha foto

Rss Logo Twitter Logo

Blogroll

  • Aurélio Marinho Jargas
  • Fábio Tomio
  • Mozart Petter
  • Renie Siqueira
  • Willian Rodriguez

Tags & Categorias

add-ons Apache apple arrays Banco de Dados CodeIgniter complementos Configuração PHP debug erro 500 erros de servidor Expressões Regulares facilidade formatação via sql Forms framework php geração de cadastros Geração de formulários Internet Explorer não salva session iphone ipod touch Layouts mozart petter mozilla firefox multiple site múltiplos sites com codeIgniter Php postgres Programação em geral reestruturando CodeIgniter Regex Replace Shell smarty SQL Sql Server Template engine Tempo de sessão codeIgniter Apache (1)
Banco de Dados (4)
Browsers (2)
CodeIgniter (7)
Expressões Regulares (1)
IPhone – Desenvolvimento (2)
JavaScript (1)
Php (9)
Programação em geral (10)
Programação SQL (4)
Screencast (1)
Servidor (1)
Shell Script (1)

WP Cumulus Flash tag cloud by Roy Tanck and Luke Morton requires Flash Player 9 or better.



©2010 Flávio Silveira
Powered by WordPress adapted of Gridline Lite of author Graph Paper Press.