我想从html表单导入csv文件并在php中处理它。动态创建表并将其附加到我的div中以进行预览。
我只想要表内唯一记录的数组。
我在php中有以下代码:
$tmpName = $_FILES['blk_csv']['tmp_name'];
$csvAsArray = array_unique((array_map('str_getcsv', file($tmpName))),SORT_REGULAR);
$table_data = '<table id="template_table" name="template_table" class="table">';
$csvAsArrayU = $csvAsArray;
for ($i = 0; $i < count($csvAsArrayU); $i++) {
if($i == 0){
$table_data .= '<thead><tr>';
for($h = 0 ; $h < count($csvAsArrayU[$i]); $h++){
$table_data .= '<th class="text-center">'.$csvAsArrayU[$i][$h].'</th>';
}
$table_data .= '</tr></thead><tbody>';
}
else{
$table_data .= '<tr id="row-'.$i.'">';
for($r = 0 ; $r < count($csvAsArrayU[$i]); $r++){
$table_data .= '<td class="text-center">'.$csvAsArrayU[$i][$r].'</td>';
}
$table_data .= '</tr>';
}
}
$table_data .= ' </tbody></table>';
我的csv结构
NAME,EMAIL
Morris,[email protected]
Morris,[email protected]
Morris,[email protected]
Jacob,[email protected]
如果您print_r($csvAsArray)
给我以下输出:
Array ( [0] => Array ( [0] => NAME [1] => EMAIL ) [1] => Array ( [0] => Morris [1] => [email protected] ) [8] => Array ( [0] => Jacob [1] => [email protected] ) )
如果您注意到第三个元素的索引是8而不是2,那么DataTable库将无法加载数据并显示如下内容:
谁能指导我解决这个问题?还是仅加载数组中唯一行的另一种方法?
$csvAsArray = array_values($csvAsArray)
应该为您工作,这将重置数组的键,以便第三个元素的索引为2。
:)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句