Gibbosity Postado Novembro 5 Denunciar Share Postado Novembro 5 Boa tarde pessoal, estou com problemas. vou tentar simplificar, tenho um arquivo texto chamado GRUPOA,GRUPOB, e outro arquivo texto chamado GRUPOC. Dentro do arquivo GRUPOA, está assim: elemento1:senha elemento2:senha E dentro do GRUPOB, está assim: elemento elemento elemento e GRUPOC igual o B elemento elemento elemento Então eu gostaria de comparar os 3 grupos, e printar na tela os elementos do grupo A que não estão nos elementos dos grupos B e C. meu código exemplo dessa explicação é este: $array = file($config->GRUPOA); $pass = array(); for($i=0; $i<count($array); $i++) { $narray = explode(':',$array[$i]); array_push($pass,$narray[0]); } $array_users = file($config->GRUPOB); $array_advanced_users = file($config->GRUPOC); /* */ $result = array_diff($pass,$array_users,$array_advanced_users); Está printando errado ! Meu código original existe mais grupos, mas é como citei acima... vou colar a função original: function global_no_assoc() { $config = new config(); $config->proxy(); /* */ $array = file($config->passwd); $pass = array(); for($i=0; $i<count($array); $i++) { $narray = explode(':',$array[$i]); array_push($pass,$narray[0]."\n"); } $array_users = file($config->users); $array_advanced_users = file($config->advanced_users); $array_semi_admins_proxy = file($config->semi_admins_proxy); $array_admins_proxy = file($config->admins_proxy); /* */ $result = array_diff($pass,$array_users,$array_advanced_users,$array_admins_proxy,$array_semi_admins_proxy); return $result; } Ta printando errado Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Frank K Hosaka Postado Novembro 6 Denunciar Share Postado Novembro 6 (editado) arquivo grupoA.txt elemento1:senha elemento2:senha arquivo grupoB.txt elemento elemento1 elemento2 arquivo index.php <?php class config // isso eu improvisei { public $passwd = 'grupoA.txt'; public $users = 'grupoB.txt'; public $advanced_users = 'grupoB.txt'; public $semi_admins_proxy = 'grupoB.txt'; public $admins_proxy = 'grupoB.txt'; static function proxy(){ } } function global_no_assoc() { $config = new config(); $config->proxy(); $array = file($config->passwd); $pass = array(); for($i=0; $i<count($array); $i++) { $narray = explode(':',$array[$i]); array_push($pass,$narray[0]); // alterei aqui e acrescentei nova regra no comando file } $array_users = file($config->users, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $array_advanced_users = file($config->advanced_users, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $array_semi_admins_proxy = file($config->semi_admins_proxy, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $array_admins_proxy = file($config->admins_proxy, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $result = array_diff($pass,$array_users,$array_advanced_users, $array_admins_proxy,$array_semi_admins_proxy); return $result; } var_dump(global_no_assoc()); // o resultado é um array vazio, pois coloquei // o elemento1 e elemento2 no grupoB.txt // gostei desse trabalho, não sabia que era possível montar um // array com um arquivo de texto, o problema é que // o espaço e o pulo da linha altera o tamanho dos elementos // e isso provoca uma baita diferença no comando array_diff. Editado Novembro 6 por Frank K Hosaka Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Gibbosity
Boa tarde pessoal, estou com problemas.
vou tentar simplificar, tenho um arquivo texto chamado GRUPOA,GRUPOB, e outro arquivo texto chamado GRUPOC.
Dentro do arquivo GRUPOA, está assim:
elemento1:senha
elemento2:senha
E dentro do GRUPOB, está assim:
elemento
elemento
elemento
e GRUPOC igual o B
elemento
elemento
elemento
Então eu gostaria de comparar os 3 grupos, e printar na tela os elementos do grupo A que não estão nos elementos dos grupos B e C.
meu código exemplo dessa explicação é este:
Está printando errado ! Meu código original existe mais grupos, mas é como citei acima... vou colar a função original:
Ta printando errado
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.