Support

Account

Home Forums Add-ons Repeater Field Repeater field to create table Reply To: Repeater field to create table

  • I have the same issue (sort of). I managed to build a list without duplicated items http://apexgt.disaine.com.br/campeonato/liga-apexgt-2019/ but I can’t get the data I need of each pilot from each race.

    This is my PHP

    <?php

    function unique_multidim_array($array, $key) {
    $temp_array = array();
    $i = 0;
    $key_array = array();

    foreach($array as $val) {
    if (!in_array($val[$key], $key_array)) {
    $key_array[$i] = $val[$key];
    $temp_array[$i] = $val;
    }
    $i++;
    }
    return $temp_array;
    }

    $finals = array();
    $car = ”;
    $race_name = ”;
    $divisions = ”;
    $races = ”;
    $pilots = array();

    if( have_rows(‘champ_division’) ):
    while( have_rows(‘champ_division’) ): the_row();

    // vars
    $divisions = get_sub_field(‘division_name’);
    $races = get_sub_field(‘division_races’);
    $pilots = array();
    $finals = array();

    echo ‘<h4 class=”text-uppercase”>’.$divisions.'</h4>’; ?>
    <table class=”table champ_table” id=””>

    <?php
    foreach( $races as $post): // variable must be called $post (IMPORTANT)
    setup_postdata($post);
    while ( have_rows (‘race_grid’)) : the_row();
    while (have_rows(‘race_pilot’)) : the_row();
    $pilots[] = get_sub_field(‘pilot_name’);
    $finals[] = get_sub_field(‘final_position’);
    $penalty = get_sub_field(‘pilot_penaly’);
    $bestlap = get_sub_field(‘pilot_bestlap’);
    $warn = get_sub_field(‘pilot_warning’); ?>
    <?php endwhile;
    endwhile;
    endforeach;
    wp_reset_postdata();
    $drivers = unique_multidim_array($pilots,’display_name’);
    $race_id = unique_multidim_array($races,’ID’);

    if (!empty($drivers)) { ?>
    <thead>
    <tr>
    <th>Nome do piloto</th>
    <th>Carro</th>
    <th>NĂºmero</th>
    <th>Equipe</th>
    <?php } foreach( $races as $post): // variable must be called $post (IMPORTANT)
    setup_postdata($post);
    echo ‘<th>’;
    the_title();
    echo ‘</th>’;
    endforeach;
    echo ‘</tr></thead>’;
    wp_reset_postdata(); ?>
    <?php
    foreach ($drivers as $driver) :
    $pid = ‘user_’.$driver[‘ID’];
    $car = ”;
    $pnumber = ”;
    $team = get_field(‘user_team’, $pid);
    while ( have_rows (‘user_car’, $pid) ) : the_row();
    $car = get_sub_field(‘car_model’);
    $pnumber = get_sub_field(‘car_number’);
    endwhile;
    ?>
    <tbody>
    <tr>
    <td><?php echo $driver[‘display_name’]; ?></td>
    <td><?php if(!empty($car)) { echo $car->post_title;} ?></td>
    <td><?php echo $pnumber; ?></td>
    <td><?php echo $team; ?></td>
    <?php foreach( $races as $post): // variable must be called $post (IMPORTANT)
    setup_postdata($post);
    echo ‘<td>’;
    if (in_array($driver, $pilots)){
    echo $driver[‘display_name’];
    echo $bestlap;
    $warn = get_sub_field(‘pilot_warning’);
    print_r ($penalty);
    }
    echo ‘</td>’;
    endforeach;
    echo ‘</tr></tbody>’;
    wp_reset_postdata(); ?>
    <?php endforeach; //Piloto Linha ?>
    </tr>
    </tbody>

    </table>
    <?php // IMPORTANT – reset the $post object so the rest of the page works correctly
    endwhile;// IMPORTANT – reset the $post object so the rest of the page works correctly
    endif;
    ?>