Php table adds values ​​if cells repeat

I have a wordpress loop returning a table as follows:

enter image description here

I want to check if this name repeats, and if so, then add up the partial values ​​to show the total. In my screenshot, the 1st and 3rd lines have the same "nome", so the global value should be 85, can anyone tell me how to do this?

my php:

<?php while( have_rows('wallet_repeater') ): the_row(); 

echo '<div class="promotoras_item_wallet">  ';
echo '<div class="promnames_wallet">  ';
// vars

$adicionados = get_sub_field('wallet_promotora');

  foreach($adicionados as $post) :

$nome = simple_fields_values("pname1");
$im = simple_fields_values("ftotop");
$cp=$adicionados ;
$imatop = $im; 
$data=get_sub_field('wallet_data');
$evento=get_sub_field('wallet_evento');
$obs=get_sub_field("wallet_obs");  
$numeros_horas = get_sub_field("Wallet_n_horas");
$valor_horas = get_sub_field("wallet_valorh");
$evento = get_sub_field("wallet_evento");
$horarios = get_sub_field("wallet_horario");

$total_parcial = $valor_horas * $numeros_horas."€";
$ii = wp_get_attachment_image($imatop[0]);


?>

<table id="wallet_table1" width="900px" border="0" cellspacing="2" cellpadding="0">
  <tbody>
    <tr>
       <tr onmouseover="this.style.backgroundColor='#ffff66';" onmouseout="this.style.backgroundColor='#d4e3e5';">

      <td class="wallet_data_img" width="5"><div class="w_promotora_images"><?php echo wp_get_attachment_image($imatop[0]);  ?></td>
      <td class="wallet_data_data" width="20"><?php echo the_sub_field('wallet_data'); ?> </td>
      <td class="wallet_data_nome" width="200"><?php echo $nome[0];$nomes[]=$nome[0];?></td>
      <td class="wallet_data_evento" width="10"> <?php echo the_sub_field("wallet_evento"); ?></td>
      <td class="wallet_data_horarios" width="10"><?php echo the_sub_field("wallet_horario");  ?></td>
      <td class="wallet_data_obs" width="10"><?php echo the_sub_field("wallet_obs"); ?></td>
      <td class="wallet_data_horas" width="10"><?php echo the_sub_field("Wallet_n_horas")."h"; ?></td>
      <td class="wallet_data_valorh" width="5"><?php echo the_sub_field("wallet_valorh")."€"; ?></td>
      <td class="wallet_data_props" width="5"><?php echo the_sub_field("wallet_props"); ?></td>
      <td class="wallet_data_total" width="5">Parcial: <?php echo $total_parcial; ?> global: 

</td> </tr></tbody></table>


<?php
+4
source share
1 answer

Put the request data in an associative array and then output it. You can do it like this:

$qry = new WP_Query('post_type' => 'your_post_type', 'posts_per_page' => -1)
$arr = array();
while($qry->have_posts()) {
    $qry->the_post()
    $nam = //Get the name data;
    $val = //Get the «global» data;
    if($qry[$nam]) {
        $qry[$nam]['global'] += $val;
    }
    else {
        $qry[$nam] = array(
            'foto' => //Photo data of the current post,
            'name' => //Photo data of the current post,
            //and so on
            'global' => $val,
        );
    }
}
foreach($qry as $key => $data) {
    //Output your table here
}
+1
source

Source: https://habr.com/ru/post/1620742/


All Articles