Jump to content
Dexter Morgan

Encontrar valores iguais no array e somar os melhores pontos dos valores iguais

Recommended Posts

Preciso encontrar todos os valores iguais do player e da key '34MB' (exemplo)  e separar as 8 melhores pontuações se tiver + que 8, se não tiver + que 8 exibir os que tem e somar total_points desse player

OBS: o player 52586 está em outra key diferente '4M1' não pode somar os valores de keys diferentes, apenas das mesmas keys

Tenho essa array:

Array
(
    [34MB] => Array
        (
            [0] => Array
                (
                    [n_codigo_torneio] => 37
                    [player] => 52586
                    [player_points_new] => 360
                    [player_class_points] => 4
                    [player_bonus_ranking] => 36
                    [player_bonus_quality] => 60
                    [player_bonus_quantity] => 36
                    [club] => 
                    [club_points_new] => 0
                    [total_points] => 492
                )

            [1] => Array
                (
                    [n_codigo_torneio] => 37
                    [player] => 52149
                    [player_points_new] => 180
                    [player_class_points] => 4
                    [player_bonus_ranking] => 18
                    [player_bonus_quality] => 0
                    [player_bonus_quantity] => 18
                    [club] => 
                    [club_points_new] => 0
                    [total_points] => 216
                )

            [2] => Array
                (
                    [n_codigo_torneio] => 37
                    [player] => 40599
                    [player_points_new] => 90
                    [player_class_points] => 99
                    [player_bonus_ranking] => 9
                    [player_bonus_quality] => 0
                    [player_bonus_quantity] => 9
                    [club] => 
                    [club_points_new] => 0
                    [total_points] => 108
                )    
        )

    [34MB] => Array
        (
            [0] => Array
                (
                    [n_codigo_torneio] => 500
                    [player] => 50412
                    [player_points_new] => 0
                    [player_class_points] => 0
                    [player_bonus_ranking] => 0
                    [player_bonus_quality] => 0
                    [player_bonus_quantity] => 0
                    [club] => 
                    [club_points_new] => 0
                    [total_points] => 0
                )

            [1] => Array
                (
                    [n_codigo_torneio] => 500
                    [player] => 16347
                    [player_points_new] => 0
                    [player_class_points] => 0
                    [player_bonus_ranking] => 0
                    [player_bonus_quality] => 0
                    [player_bonus_quantity] => 0
                    [club] => 
                    [club_points_new] => 0
                    [total_points] => 0
                )

            [2] => Array
                (
                    [n_codigo_torneio] => 500
                    [player] => 1869
                    [player_points_new] => 0
                    [player_class_points] => 0
                    [player_bonus_ranking] => 0
                    [player_bonus_quality] => 0
                    [player_bonus_quantity] => 0
                    [club] => 
                    [club_points_new] => 0
                    [total_points] => 0
                )

            [3] => Array
                (
                    [n_codigo_torneio] => 500
                    [player] => 30762
                    [player_points_new] => 0
                    [player_class_points] => 0
                    [player_bonus_ranking] => 0
                    [player_bonus_quality] => 0
                    [player_bonus_quantity] => 0
                    [club] => 
                    [club_points_new] => 0
                    [total_points] => 0
                )

            [4] => Array
                (
                    [n_codigo_torneio] => 500
                    [player] => 52586
                    [player_points_new] => 480
                    [player_class_points] => 0
                    [player_bonus_ranking] => 0
                    [player_bonus_quality] => 0
                    [player_bonus_quantity] => 0
                    [club] => 
                    [club_points_new] => 0
                    [total_points] => 480
                )

            [5] => Array
                (
                    [n_codigo_torneio] => 500
                    [player] => 4678
                    [player_points_new] => 0
                    [player_class_points] => 0
                    [player_bonus_ranking] => 0
                    [player_bonus_quality] => 0
                    [player_bonus_quantity] => 0
                    [club] => 
                    [club_points_new] => 0
                    [total_points] => 0
                )
        )

    [4M1] => Array
        (
            [0] => Array
                (
                    [n_codigo_torneio] => 29
                    [player] => 40189
                    [player_points_new] => 600
                    [player_class_points] => 7
                    [player_bonus_ranking] => 0
                    [player_bonus_quality] => 60
                    [player_bonus_quantity] => 0
                    [club] => 
                    [club_points_new] => 0
                    [total_points] => 660
                )

            [1] => Array
                (
                    [n_codigo_torneio] => 29
                    [player] => 37301
                    [player_points_new] => 135
                    [player_class_points] => 5
                    [player_bonus_ranking] => 0
                    [player_bonus_quality] => 0
                    [player_bonus_quantity] => 0
                    [club] => 
                    [club_points_new] => 0
                    [total_points] => 135
                )

            [2] => Array
                (
                    [n_codigo_torneio] => 29
                    [player] => 42623
                    [player_points_new] => 135
                    [player_class_points] => 5
                    [player_bonus_ranking] => 0
                    [player_bonus_quality] => 0
                    [player_bonus_quantity] => 0
                    [club] => 
                    [club_points_new] => 0
                    [total_points] => 135
                )

            [3] => Array
                (
                    [n_codigo_torneio] => 29
                    [player] => 46849
                    [player_points_new] => 67.5
                    [player_class_points] => 5
                    [player_bonus_ranking] => 0
                    [player_bonus_quality] => 0
                    [player_bonus_quantity] => 0
                    [club] => 
                    [club_points_new] => 0
                    [total_points] => 67.5
                )

            [4] => Array
                (
                    [n_codigo_torneio] => 1
                    [player] => 52586
                    [player_points_new] => 600
                    [player_class_points] => 7
                    [player_bonus_ranking] => 0
                    [player_bonus_quality] => 0
                    [player_bonus_quantity] => 0
                    [club] => 
                    [club_points_new] => 0
                    [total_points] => 600
                ) 
        )
)


Não sei como fazer isso... um exemplo, o player 52586 tem que ter 972 pontos na 34MB e 600 na 4M1.

Share this post


Link to post
Share on other sites

Tente o seguinte conceito:

 

IIterar o array.

 

Fazer um if sobre a chave player com array_count_values.

Se o resultado for maior que 1 então você soma os valores da chave player_point_new

 

Eu tentaria algo dentro deste conceito para depois abordar algum outro.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By MatheusSmidt
      Bom dia,
      Estou precisando de ajuda com o código do formulário de um sistema de cadastro.
      A página é para consulta mas tem a possibilidade de adicionar ou retirar "faltas" de cada profissional cadastrado através de botões simples e também apagar um ou múltiplos profissionais da lista, através de checkbox..
      Essa ações atualizam o banco de dados e já retornam na tela automaticamente.
      O problema é que não fui eu que estruturei o código PHP e não consigo aliar as duas funções que falei anteriormente. Quando consigo fazer funcionar o sistema de adição e redução de faltas, consigo apenas excluir o último nome da lista, mesmo selecionando vários. E quando consigo resolver a parte de excluir vários nomes, não consigo adicionar e reduzir o número de faltas.
      O código é o seguinte:
       
      <?php
      require_once ("verifica.php");
      require_once ("topo.php");
      require_once ("conexao.php");
      $enviar = isset($_POST["txtEnviar"]) ? $_POST["txtEnviar"]: '';
      $ordenar = isset($_GET["ordenar"]) ? $_GET["ordenar"]: '';
      if ($ordenar == "")
          $ordenar = "nome";
      if ($enviar != 1) {
          $query = mysql_query("select * from docente order by $ordenar") or die ("Erro ao selecionar dados do docente! ".mysql_error());
      } else {
          $rdCriterio = $_POST["rdCriterio"];
          $pesquisar = $_POST["txtPesquisar"];
          $query = mysql_query("select * from docente where $rdCriterio like '%$pesquisar%'") or die ("Erro ao efetuar a pesquisa! ".mysql_error());
      }
      $totalDocentes = mysql_num_rows(mysql_query("select * from docente"));
      ?>
      <div id="meio">
          <h2>Lista de docentes (<?php echo $totalDocentes;?>)</h2><br>
          <table id="tbPesquisarDocente">
          <form action=consultarDocente.php method=post>
          <input type=hidden name=txtEnviar value=1>
          <tr>
          <td id=search>Pesquisar por: <input type=radio name=rdCriterio value="siape" checked>Siape <input type=radio name=rdCriterio value="nome"> Nome <input type=radio name=rdCriterio value="curso">Curso <input type=text name=txtPesquisar> <input type=submit value="OK"></td>
          </tr>
          </form>
          </table>
          <br><br>
          <table id="dadosDocente" cellspacing=0>
          <form action="consultarDocente.php" method="post">
          <tr id="cabecalho">
          <td><a href="?ordenar=siape">Siape</a></td>
          <td><a href="?ordenar=nome">Nome</a></td>
          <td><a href="?ordenar=curso">Curso</a></td>
          <td><a href="?ordenar=faltas">Faltas</a></td>
          <td><a href="?ordenar=excluir">Excluir</a></td>
          <td><!-- Espaço para checkbox --></td>
          </tr>
          <?php
          while ($resultado = mysql_fetch_array($query)) {
              $id = $resultado["id"];
              $siape = $resultado["siape"];
              $nome = $resultado["nome"];
              $curso = $resultado["curso"];
              $faltas = $resultado["faltas"];
          ?>
          </form>
          <tr id="dados" bgcolor="">
          <td><a href="frmDetalheDocente.php?id=<?php echo $id;?>" style="color: <?php echo $cor;?>"><?php echo $siape;?></style></a></td>
          <td><?php echo $nome;?></td>
          <td><?php echo $curso;?></td>
          
          <td align="center">
              <table>
                  <tr>
                      <td><a href="menosum.php?id=<?php print $id;?>"><button name="Btt" style="width:10px">-</button></a></td>
                      <td><?php echo $faltas?></td>
                      <td><a href="maisum.php?id=<?php print $id;?>"><button name="Btt" style="width:10px">+</button></a></td>
                  </tr>
              </table>
          </td>
          
          <form action="apagaSelecionadosDocente.php" method="post">
          <td><input type="checkbox" name="chkDeletar[]" value="<?php echo $id;?>"></td>
          </tr>
          <?php
          }
          ?>
          
          <tr>
          <td colspan=4 align="center"><br><input type="submit" value="Apagar selecionados" style="width: 300px;"></td>
          </tr>
          </form>
          </table>
      </div>
      <?php
      require_once ("rodape.php");
      ?>
       
       
      Provavelmente é um problema no "WHILE" ou na abertura e fechamento de formulário. Porém não consegui resolver.
      Se alguém conseguir resolver seria ótimo.
      Agradeço desde já. Em anexo envio um print da página para melhor entendimento.
       
       
       

    • By heenrique
      Boa Noite
       
      amigos tenho um select no qual me retorna o seguinte 
      SELECT * FROM sis_suporte WHERE tecnico = '1' AND abertura < '2019-10-30'; +----+--------------------------------------+------------+---------------------+---------------------+-------+---------+----------------+-----------------------------+------------------+----------------------------+---------------------+------------+--------------+-------+---------+-------------+------------------------------------------------------------------+ | id | uuid_suporte | assunto | abertura | fechamento | email | status | chamado | nome | login | atendente | visita | prioridade | ramal | reply | tecnico | login_atend | motivo_fechar | +----+--------------------------------------+------------+---------------------+---------------------+-------+---------+----------------+-----------------------------+------------------+----------------------------+---------------------+------------+--------------+-------+---------+-------------+------------------------------------------------------------------+ | 36 | 1901294b-80e6-4389-9059-fa090c09e382 | Outros | 2019-09-14 19:27:42 | 2019-10-17 19:35:20 | NULL | aberto | 14091919272653 | Alex Ramos dos Santos | alex.santos | Letícia Paula de Oliveira | 2019-10-17 16:27:15 | normal | SAO PAULO | nao | 1 | leticia | TÉCNICO HENRIQUE FINALIZOU A ORDEM: CLIENTE BLOQUEADO | | 37 | af8da3e7-9dbc-45b9-945b-d50cd45d9ea6 | Outros | 2019-09-14 19:37:13 | 2019-10-04 21:11:25 | NULL | fechado | 14091919370623 | Alexsandro Santos Braz | alesysandro.braz | Letícia Paula de Oliveira | 2019-10-04 16:37:15 | normal | SAO PAULO | nao | 1 | leticia | TÉCNICO HENRIQUE FINALIZOU A ORDEM: | | 39 | 2b03e9d4-50ca-4713-8149-88fe083fb9d9 | Instalacao | 2019-09-16 17:00:22 | 2019-10-03 22:38:23 | NULL | fechado | 16091916593665 | Henrique Gabriel de Almeida | teste | Letícia Paula de Oliveira | 2019-10-03 08:00:15 | normal | POUSO ALEGRE | sim | 1 | leticia | TÉCNICO HENRIQUE FINALIZOU A ORDEM: QWE | | 40 | b2c0fc23-0a5c-46ae-a8b8-a8641b1d53c4 | Outros | 2019-10-03 23:21:22 | 2019-10-03 23:36:51 | NULL | fechado | 03101923210987 | Henrique Gabriel de Almeida | teste | sistema | 2019-10-03 14:21:15 | normal | POUSO ALEGRE | nao | 1 | admin | TÉCNICO HENRIQUE FINALIZOU A ORDEM: RELIGUEI A FONTE DO CLIENTE | | 41 | e9aaf792-56c6-4fe1-b8c3-aa51338f65d1 | Outros | 2019-10-03 23:23:02 | 2019-10-03 23:46:01 | NULL | fechado | 03101923225491 | Cintia Rocha Vaz | cintia.vaz | sistema | 2019-10-03 17:22:15 | normal | SAO PAULO | nao | 1 | admin | TÉCNICO HENRIQUE FINALIZOU A ORDEM: 12 | +----+--------------------------------------+------------+---------------------+---------------------+-------+---------+----------------+-----------------------------+------------------+----------------------------+---------------------+------------+--------------+-------+---------+-------------+------------------------------------------------------------------+ 5 rows in set (0.00 sec) e quando imprimo sai um por um, gostaria de agrupar por data de abertura ex.
       
      2019-09-14
      Alex Ramos
      Alexsandro
       
      2019-09-16
      Henrique
       
      2019-10-03
      Henrique
      Cintia
       
      como agrupar isso em php,
       
      esse e o cod onde eu imprimo
       
      <?php while($dados = mysqli_fetch_assoc($resultado_os)){ if ($dados['status'] == 'aberto'){ ?> <div class='row'> <div class='col-md-12'> <a href='os.php?os=<?php echo $dados['chamado']; ?>'> <div style='box-shadow: 3px 3px 0px 1px rgba(0,0,0,0.1);' class='info-box'> <span class='info-box-icon1 bg-agua'><i style='padding-top: 35%;' class='ion ion-ios-gear-outline'></i></span> <div class='info-box-content'> <span class='info-box-text'><b>ABERTA</b></span> <span class='info-box-text'><b>O.S:</b><?php echo $dados['chamado']; ?></span> <span class='info-box-text'><b>NOME:</b><?php echo utf8_encode($dados['nome']); ?></span> <span class='info-box-text'><b>TIPO:</b><?php echo $dados['assunto']; ?></span> <span class='info-box-text'><b>DATA/HORA:</b><?php echo (new DateTime($dados['visita']))->format('d/m/Y - H:i'); ?></span> </a> </div> </div> <?php } if ($dados['status'] == 'fechado'){ ?> <div class='row'> <div class='col-md-12'> <a href='os.php?os=<?php echo $dados['chamado']; ?>'> <div style='box-shadow: 3px 3px 0px 1px rgba(0,0,0,0.1);' class='info-box'> <span class='info-box-icon1 bg-red'><i style='padding-top: 35%;' class="fa fa-check" aria-hidden="true"></i></span> <div class='info-box-content'> <span class='info-box-text'><b>FINALIZADA</b></span> <span class='info-box-text'><b>O.S:</b><?php echo $dados['chamado']; ?></span> <span class='info-box-text'><b>NOME:</b><?php echo utf8_encode($dados['nome']); ?></span> <span class='info-box-text'><b>TIPO:</b><?php echo $dados['assunto']; ?></span> <span class='info-box-text'><b>DATA/HORA:</b><?php echo (new DateTime($dados['fechamento']))->format('d/m/Y - H:i'); ?></span> </a> </div> </div> <?php } } ?> </div> </div> </div> </section> </div>  
    • By avelar.avelar
      Boa Tarde galera, 
       
      Preciso criar um Test de Recursividade na mesma tabela:
       
      Tabela: Biblioteca
      Campos:
      ID
      Titulo
      Descricao
      Biblioteca-ID(Foreign Key)
       
      Obrigado
    • By LRDSILVA3
      Pessoal Boa Tarde ,Tudo certo?
      Estou com um projeto para aprendizagem (já que só tenho conhecimentos de css e html) e upgrade da firma onde trabalho e não estou conseguindo salvar os valores do formulário no banco de dados,a conexão é feita porem salva todos os valores como null.
      <?php
      $servername = "192.168.1.109";
      $database = "cadastrokm";
      $username = "teste";
      $password = "123456";
      // Create connection
      $conn = mysqli_connect($servername, $username, $password, $database);
      // Check connection
      if (!$conn) {
            die("Connection failed: " . mysqli_connect_error());
      }
       
      echo "Connected successfully";
      $funcionarioKm = isset( $_POST['funcionarioKm']); 
          $veiculoKm = isset($_POST['veiculoKm']);
          $kmInicial = isset($_POST['kmInicial']);
          $kmFinal = isset($_POST['kmFinal']);
       
      $sql = "INSERT INTO km (funcionarioKm,veiculoKm,kmInicial,kmFinal) 
          VALUES ('$funcionarioKm','$veiculoKm','$kmInicial',
          '$kmFinal')";
      if (mysqli_query($conn, $sql)) {
            echo "New record created successfully";
      } else {
            echo "Error: " . $sql . "<br>" . mysqli_error($conn);
      }
      mysqli_close($conn);
      ?>
      <!DOCTYPE html>
      <html lang="pt-br">
      <head>
          <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
      <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
      <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
      <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>

      </head>
      <body>
        
          <div class=container>
      <section>
          <!-- Página de Cadastro de KM -->
          <h1>Cadastro de Km</h1>
          <hr><br><br>
          <form method="post" action="conexao.php">
          <p class="font-weight-bold">Favor Selecione seu Nome:</p>
                <select id="funcionarioKm"  name="funcionarioKm"required autofocus>
                    <option>Motorista</option>
                    <option>Almir</option>
                           <option>Maykon</option>
                                      <option>Jorge</option>    
                                  </select>
      </br></br>
                <p class="font-weight-bold">Favor Selecione o Veiculo:</p>
                <select id="veiculoKm" value="veiculoKm " name="veiculoKm"required>
                    <option>Veiculo</option>
                    <option>L200</option>
                           <option>Strada 01</option>
                                      <option>Strada 02</option>    
                                      <option>Caminhão 01</option>    
                                  </select> 
       </br></br>
                 <label for="litros"><p class="font-weight-bold">Informe a Quilometragem Inicial:</p></label>
              <input type="number" id="kmInicial" name="kmInicial" required/>
      </br></br>
              <label for="litros"><p class="font-weight-bold">Informe a Quilometragem Final:</p></label>
              <input type="number" id="kmFinal" name="kmFinal" required />
      </br></br>
              <input type="submit" value="Salvar"    class="btn btn-primary btn-md">
              <input type="reset" value="Limpar"class="btn btn-primary btn-md" >
              <br><br>
      </form>
      </section>
      </div>
      </body>
      </html>
       

       
       
    • By proflupin
      criei uma página que busca alguns dados no BD e retornar em forma de collapse. Como existe um WHILE executando o collapse, ele sempre o executa com o mesmo ID, ou seja, se eu tiver 20 collapse, todos vão ser abertos ao clicar no primeiro.
      A dúvida é, como eu posso criar um novo ID para o collapse a cada loop do While?
      Código:
       
      <?php while($result_inners = mysqli_fetch_object($result_inner)){ ?> <div class="card-footer "> <a class="text-muted" data-toggle="collapse" href="#collapse1" role="button" aria-expanded="false" aria-controls="collapseExample"> <i class="fas fa-comment-alt"></i> <?php if(!empty($result_inners->nome_completo)) echo $result_inners->nome_completo . " respondeu..."; else echo "Aguardando resposta do técnico." ?> </a> <div class="collapse " id="collapse1"> <div class="bg-white mt-2 p-2"> <?php echo nl2br($result_inners->mensagem) ?> </div> <span style="color: #6c757d; float: right;"><?php echo date('d/m/Y H:i', strtotime($result_inners->data_hora)) ?></span> </div> </div> <?php } ?>  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.