tubadc 0 Denunciar post Postado Junho 5, 2007 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
dark_elf 0 Denunciar post Postado Junho 5, 2007 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
tubadc 0 Denunciar post Postado Junho 6, 2007 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
MadPatryk 0 Denunciar post Postado Junho 6, 2007 troca o $array_resultado pelo proprio $array1 ;) Compartilhar este post Link para o post Compartilhar em outros sites
tubadc 0 Denunciar post Postado Junho 6, 2007 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
tubadc 0 Denunciar post Postado Junho 6, 2007 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
FileasFogg 0 Denunciar post Postado Junho 6, 2007 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
MadPatryk 0 Denunciar post Postado Junho 6, 2007 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
dark_elf 0 Denunciar post Postado Junho 6, 2007 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
MadPatryk 0 Denunciar post Postado Junho 6, 2007 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