Как правильно построить таблицу при получении данных из csv файла?

Пытаюсь построить таблицу основываяся на полученных из файла csv данных, а именно мне необходимо сделать возможным выбрать название для каждого поля из файла разделенного запятой, например:

поле, поле2, поле3, поле4

поле, поле2, поле3, поле4, поле5

поле, поле2, поле3, поле4, поле5, поле6

После загружки файла с такими полями мне необходимо для каждого из полей назначить названия для того, чтобы далее сохранить данные в базу данных MySQL.

Примерно так это выглядит https://i.gyazo.com/5792f6b8541006ba9ffef06d8025cdee.mp4

Получилось отображать select с выбором названия для конкретного поля только в том случае, если данное поле не пустое, иначе выглядеть может так

введите сюда описание изображения

Стало понятно, что остальные поля тоже важны, вот мой вопрос: как изменить код так, чтобы он отображал select для тех полей, которые пусты в конкретной строке, НО далее в строках файла данные поля не пусты? Т.е., как отобразить select для данного варианта (4 столбец).

введите сюда описание изображения

Код мой очень приметивный, я только учусь, прошу особо не ругать, если сможете предложить упрощения моего кода, будет здорово.

Спасибо!

Код:

function multiexplode ($delimiters, $string) {
$ready  = str_replace($delimiters, $delimiters[0], $string);
$launch = explode($delimiters[0], $ready);
return $launch;
}


<table>
 <tr>';


$i = 0; //начальное значение


while ((($i <= 0) and $text = fgets($fp, 4096)) !== false) {

$i++;

$text = str_replace('"', '', $text);

$exploded = multiexplode (array(",", ";", "|"), $text);

foreach($exploded as $item){

     $item = trim ($item);

if(isset($item) && $item !== '')  {  

     echo '
     <th>
        <select name="select2">
            <option selected="selected">Выберите поле</option>
            <option value="name">Имя</option>
            <option value="phone">Телефон</option>
            <option value="data">Дата рождения</option>
            <option value="create">+ Создать новое поле</option>
        </select>
     </th>';

}

}
print '
</tr>';
    
}



while ((($i <= 4) and $text = fgets($fp, 4096)) !== false) {

$text = str_replace('"', '', $text);

$exploded = multiexplode (array(",", ";", "|"), $text);

        $i++;
        

print '
<tr>';

foreach($exploded as $item){
   
     //$item = str_replace(',', '', $item);

     $item = trim ($item);
     
if(isset($item) && $item !== '')  { 

     print '        <td>' . $item . '</td>
     ';
     
}

}

     print '
</tr>';

    
}


print '
</table>
';      

Ответы (0 шт):