Ir para conteúdo

Arquivado

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

Theilis Pereira

Comparar elementos de listas distintas

Recommended Posts

Assim, tenho um arquivo .CSV, imagine 3 colunas. E uma outra tabela no banco de dados. 

 

Quero verificar se os elementos da primeira coluna foram cadastrados na primeira coluna do banco e depois quero saber que se os elementos das terceiras colunas levando em consideração o id de cada registro. 

 

$func=busca_funcionario_c ();
foreach ($func as $i){
    echo $i['id_funcionario']."-";
    echo $i['funcao_funcionario']."<br>";
    $lista_id[]= $i['id_funcionario'];
    $lista_funcao[]= $i['funcao_funcionario'];
}

if(isset($_FILES['fileUpload']))
   {
    $file=$_FILES['fileUpload'];  
    $nome_arquivo=strtolower($_FILES['fileUpload']['name']);
    $extencao_arq= pathinfo($nome_arquivo, PATHINFO_EXTENSION); //PEGA A EXTENSÃO DO ARQUIVO


      $novo_name = date("Y_m_d-H_i_s") . ".".$extencao_arq; //Definindo um novo nome para o arquivo

      $nome_arq="uploads/p_lotacao/"."$novo_name"; 

      
      $dir = 'uploads/p_lotacao/'; //Diretório para uploads      
      move_uploaded_file($_FILES['fileUpload']['tmp_name'], $dir.$novo_name); //Fazer upload do arquivo
      move_uploaded_file($_FILES['fileUpload']['tmp_name'], $novo_name); //Fazer upload do arquivo
      $file = fopen($nome_arq,"r");
      
      

$fh = fopen($nome_arq,'r') or die('ERRO' . $nome_arq );
 
$data = array();
while($rec = fgetcsv($fh)){
 $data[] = $rec;

}
$max=sizeof($data);
echo "<br>ultimo: ".$max=sizeof($data);
echo "<br><table border='1'>";
        
for ($i=0;$i<$max;$i++){

    foreach ($data[$i] as $linha){
      
        $p=explode(";",$linha);
        $a=$p[0];
        $b=$p[1];
        $c=$p[2];
        echo "<tr>";
        
            if (in_array($a, $lista_id)){
            echo "<td style='color:blue;'>".$a."</td>";
        } else {
            echo "<td>".$a."</td>";
                
                }
            echo "<td>".$b."</td>";
            
         foreach ($lista_funcao as $id){  
                          if ($id == $c  ){
            $d=$c;
         }   else{echo "<td style='color:red;' >".$c."-".$id."</td>";}}
                 echo "</tr>";
           }
}
echo "</table>";
fclose($fh);
    
  
fclose($file);
      
   }  

minha lógica está longe de estar certa

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Boa tarde, pessoal.
      Espero que todos estejam bem.
       
      Seguinte:
      Tenho a seguinte consulta:
       
      $usuarios= "SELECT * FROM usuarios";
      $query= mysqli_query($conexao, $usuarios) or die ("Usuário não encontrado");
      $usuario = mysqli_fetch_array($query);
       
      Quero pegar apenas o campo 'nome' da tabela 'usuarios' e colocar todos os resultados da seguinte forma:
       
      $nomes = array("Rafael", "João", "Maria", "Pedro", "Patricia", "Camila");
       
      Agradeço desde já.
      Abs
       
       
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse resultado do array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
    • Por clovis.sardinha
      Bom dia.
      Meu problema é o seguinte:
      Estou fazendo uma tabela e preciso mostrar o usuário e várias cidades que pertencem a este usuário.
      O resultado do array é o seguinte:

      Quando passo para a tabela os valores de cidade se repetem para o mesmo usuário até o final e retorna fazendo o mesmo para o próximo usuário. 
      Veja abaixo

       
      Meu código para a tabela é a seguinte:
      <tr> <td align="left"><?php echo $usuario['nome'] ?></td> <td align="left"><?php echo $usuario['nome_orgao'] ?></td> <td align="left"><?php echo $usuario['nome_funcao'] ?></td> <?php foreach($destinos as $key=>$destino):?> <?php $key=0;?> <td align="left"> <?php foreach($destino as $chave=> &$cidade): ?> <?php echo $cidade['cid_nome']."-";?> <?php endforeach;?> </td> <?php $key+=$key; ?> <?php endforeach;?> <td><?php echo date('d/m/Y', strtotime( $usuario['created_at'])) ?></td> <td align="left"><a href="<?php echo base_url('UserAdmin/Usuario/getUsuarioById')."/".$usuario['id_user'] ?>">DETALHES</a></td> </tr> <?php endforeach ?> Onde estou errando? O que tenho de fazer para percorrer este array de modo a aparecer apenas as cidades pertencentes a cada usuário?

    • Por Giovanird
      Listo um array pelo foreach e preciso pegar os valores fora do foreach.
      Abaixo tenho o exemplo do foreach com os valores
       
      <?php foreach($turma $rsturma): if(($rsturma['id'] == 1){ echo $rsturma['nome']."<br>"; echo $rsturma['idade']."<br><br>"; } endforeach; //Dentro do foreach me retorna: Luis 13 Maria 12 Carlos 12 Matheus 14 Andréa 12 //Preciso pegar a posição e o valor desta lista $posicao1 = 1; $nome1 = Luis; $posicao2 = 2; $nome2 = Maria; $posicao3 = 3; $nome3 = Carlos; $posicao4 = 4; $nome4 = Matheus; $posicao5 = 5; $nome5 = Andréa;  
×

Informação importante

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