Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

tubadc

comparar arrays

Recommended Posts

Galera imaginem o seguinte tenho 2 arrays:$array1= array( '1' => 'one', '2' => 'two', '3' => 'tree', '4' => 'four', '5' => 'five');$array2= array( '1' => 'um', '3' => 'três', '5' => 'cinco');Quero comparar os dois e retornar os resultados baseados no $array1 Exemplo do resultado que quero obter:$array_resultado= array( '1' => 'um', '2' => 'two', '3' => 'três', '4' => 'four', '5' => 'cinco');Como devo proceder? jpá fiz várias tentativas com array_diff_assoc() mas acho que estou fazendo errado... me ajudem por favor...OBrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aconselho você a faver um looping dentro dos arrays visto que você esta queren ver a semelhança entre os indices dos arrays:

 

$array_resultado = array();

foreach($array1 as $key=>$value)

{

if( array_key_exists($key, $array2) )

{

$array_resultado[$key] = $array2[$key];

}

else

{

$array_resultado[$key] = $array1[$key];

}

}

 

 

testa isso ai... acho que funfa... http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara entendi... mas não foi... ele retorna só os que coincidem.... preciso retornar tudo...Tenho de traduzir um arquvio com 5911 linhas... tenho um arquivo de tradução do programa de uma versão anterior que coincide várias linhas e ele tem umas 3000 linhasQuero que retorne todas as 5911 sendo que os que coincidirem o array venham com a tradução.Tks again

Compartilhar este post


Link para o post
Compartilhar em outros sites

troca o $array_resultado pelo proprio $array1 ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

legal!!! só mais uma coisa tenho de printar os resultados no formato'1' => 'um','2' => 'two','3' => 'três','4' => 'four','5' => 'cinco'ai to fazendo$array_resultado = array();foreach($array1 as $key=>$value){if( array_key_exists($key, $array2) ){print "'".$array1[$key]."' => '".$array2[$key]."',<br>";}else{print "'".$array1[$key]."' => '".$array1[$key]."',<br>";}}só que ele retorna'um' => 'um',por exemplo como faço pra vir'1' => 'um',baseado no $array1Valeu mesmo!

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que foi$array_resultado = array();foreach($array1 as $key => $value){if( array_key_exists($key, $array2) ){print "'".$key."' => '".$array2[$key]."',<br>";}else{print "'".$key."' => '".$array1[$key]."',<br>";}}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kra será que um array_diff(); não resolve o problema ???? consulta a documentação do PHP sobre arrays que tem muitas funções úteis ! Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz tempo que eu não programo com php, mas acho que tu tem razão sim kra, acho que o array_diff rola...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O array_diff não ira funcionar para resolver esse caso... o mesmo só retorna o que existe no primeiro array passado e que não existe no segundo array.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ahh é, pode crer, eu não lembrava, ai n quis me intrometer rs, entao a resposta do tubadc vai ajudar :)só utilizar o $key do foreach

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.