Dyegod3 0 Denunciar post Postado Julho 1, 2009 Bom dia pessoal! estou com um pequeno problema aki, preciso de imprimir todos os elementos de um array que não sejam valores de um outro array mais ou menos assim: o segundo array possui os indices que não podem ser impressos pelo primeiro array! exemplo: $array1 = {teste1, teste2, teste3, teste4, teste5, teste6 } $array2={ 0,3,5} tenho q imprimir apenas as posições 1,2,4 do primeiro array, como faço^? Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Julho 1, 2009 Depende da linguagem. a lógica da coisa seria + ow - assim: //le os arrays //. //. para i de 0 até tamanho_A faça Se (buscaPosicao(i) = 0) escreva(VetorA[i]); Fim_para Função buscaPosicao(inteiro pos) retorna Inteiro Inteiro retorno <- 0; Para i de 0 até tamanho_B faça Se (VetorB[i] = pos) então retorno <- 1 break; Fim_Se Fim_Para Função_retorna retorno; Fim_Função Compartilhar este post Link para o post Compartilhar em outros sites
Dyegod3 0 Denunciar post Postado Julho 1, 2009 hum... não teria como tu fazer em alguma linguaguem tipo c ? Compartilhar este post Link para o post Compartilhar em outros sites
Dyegod3 0 Denunciar post Postado Julho 1, 2009 Bom, passando para php eu fiz assim: for ($i=0; $i < $numero_emails_arq; $i++) { if (buscaPosicao($i) == 0) echo ($email[$i]); } function buscaPosicao($pos) { $retorno = 0; for ($i=0; $i < $numero_emails_arq; $i++) { if($posicao[$i] = $pos) { $retorno = 1; break; } } return $retorno; } mais imprime todos os elementos!!!!!!!!!!!!! xD Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Julho 1, 2009 tente implementar q eu te ajudo neh. te dei 80% jah amigão.; []s -- Com inteiros fica + ow - assim: #include <stdio.h> int buscaPosicao(int pos, int vetB[], int tamB){ int i, retVal = 0; for(i=0;i<tamB;i++){ if (vetB[i] == pos){ retVal = 1; break; } } return retVal; } int main(){ int i, tamA, tamB; printf("Digite quantos dados tera no seu vetorA: "); scanf("%d", &tamA); int vetA[tamA]; printf("Digite quantos dados tera no seu vetorB: "); scanf("%d", &tamB); int vetB[tamB]; for(i=0;i<tamA;i++) { printf("Digite o vetA[%d]: ", i); scanf("%d", &vetA[i]); } for(i=0;i<tamB;i++) { printf("Digite o vetB[%d]: ", i); scanf("%d", &vetB[i]); } for(i=0;i<tamA;i++) if (buscaPosicao(i, vetB, tamB) == 0) printf("%d ", vetA[i]); return 0; } Compartilhar este post Link para o post Compartilhar em outros sites
Dyegod3 0 Denunciar post Postado Julho 1, 2009 Deixei ele assim cara, ainda tá pegando todo! $tamA=$numero_emails_arq; $tamB=$numero_emails_arq; $email[$tamA]; $posicao[$tamB]; for($i=0;$i<$tamA;$i++) if (buscaPosicao($i, $posicao, $tamB) == 0) echo("! ". $email[$i]); function buscaPosicao($pos, $posicao, $tamB){ $retVal = 0; for($i=0;$i<$tamB;$i++){ if ($posicao[$i] == $pos){ $retVal = 1; break; } } return $retVal; } Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Julho 1, 2009 ql é os valores q você ta jogando nos vetores?? no php você num precisa dizer ql o tipo de retorno? []s Compartilhar este post Link para o post Compartilhar em outros sites
Dyegod3 0 Denunciar post Postado Julho 1, 2009 $email tem é um array de emails $posicao é um array q possue emails repetidos, ou seja só as posições dos emails repeditos em relação a base de dados no php não precisa dizer o tipo retorno Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Julho 1, 2009 Vou fazer assim, como a lógica jah esta ai. vou mover para a área de PHP lah o pessoal pode te ajudar melhor a partir desse ponto. posso mover? []s Compartilhar este post Link para o post Compartilhar em outros sites
Dyegod3 0 Denunciar post Postado Julho 1, 2009 beleza chefe! valeu a ajuda! pode move ;) Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Julho 1, 2009 http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif --- Tópico Movido: Lógica de Programação e Algoritmos http://forum.imasters.com.br/public/style_emoticons/default/seta.gif PHP Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Julho 1, 2009 Remova as entradas repetidas com array_unique() e então imprima o array resultante. Compartilhar este post Link para o post Compartilhar em outros sites
Dyegod3 0 Denunciar post Postado Julho 1, 2009 eu dei uma olhada na documentação parece q tenho q ter repetições no mesmo array para usar array_unique() eu tenho dois arrays, um que recebe valores de emails de um arquivo txt e outro do banco de dados Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Julho 1, 2009 Tem uma função que faz exatamente isto. http://br.php.net/manual/pt_BR/function.array-diff-key.php No próprio manual tem alguns exemplos Qualquer dúvida posta de novo Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Dyegod3 0 Denunciar post Postado Julho 1, 2009 parece q é isso mesmo q eu preciso, mais olha só eu tenho no meu primeiro array= " sdfawreadf@hotmail.com ashduiahdiashudahsudiasddhasuidh@teste.com.br faxaway@faxaway.com help@mail.efax.com hr.certification@mail.com hr@accessindustrial.com incomingfax2@accessindustrial.net incomingfax@accessindustrial.net info@jobsafetyusa.com master@hotmail.com olteam@microsoft.com testeteste@hotmail.com tony.smartins@gmail.com vm@supportforvoip.com wborges@guiavix.com.br wborgesdirect@hotmail.com dyegod3@hotmail.com" esses emails no segundo tenho: "dyegod3@hotmail.com otoni.sm@hotmail.com meganix33@gmail.com" a função q estou usando é essa: function array_unique_diff_key ($array1, $array2) { if (is_array($array1) && is_array($array2)) $array_final= array_diff_key($array1, $array2); for($i=0;$i < 20; $i++) { echo $array_final[$i]."!"; } } que está me retornando isso: "!!!help@mail.efax.com !hr.certification@mail.com !hr@accessindustrial.com !incomingfax2@accessindustrial.net !incomingfax@accessindustrial.net !info@jobsafetyusa.com !master@hotmail.com !olteam@microsoft.com !testeteste@hotmail.com !tony.smartins@gmail.com !vm@supportforvoip.com !wborges@guiavix.com.br !wborgesdirect@hotmail.com !dyegod3@hotmail.com !!!!" vejam só, ela não está imprimindo os 3 primeiros e email e está imprindo o ultimo que é repetido! oq pode ser isso^? Compartilhar este post Link para o post Compartilhar em outros sites
Dyegod3 0 Denunciar post Postado Julho 1, 2009 pow! consegui pessoal! valeu pela ajuda de todos =D em vez de usar array_diff_key usei array_diff pegou tudo certin, sou grato a todos abraço Compartilhar este post Link para o post Compartilhar em outros sites