如何在数组中转换CSV文件's表值


How to convert CSV file's table values in Array?

我的CSV文件第一列中有以下值

<table border="1">
<tr>
    <th align="left">First Name</th>
    <th align="left">Gender</th>
    <th align="left">Nationality</th>
</tr>
<tr>
    <td align="left">Mike</td>
    <td align="left">M</td>
    <td align="left">Singaporean</td>
</tr>

我已经这样做了:读取文本文件的每一行到新的数组元素

如何将以上CSV文件转换为Array。因此输出将是

Array
(
    [0] => Array
        (
            [0] => First Name
            [1] => Gender
            [2] => Nationality
        )
    [1] => Array
        (
            [0] => Mike
            [1] => M
            [2] => Singaporean
        )
)

使用DOMDocument::saveHTML的php数组

参考这个示例代码:

$htmlString = '
    <td align="left">Mike</td>
    <td align="left">M</td>
    <td align="left">Singaporean</td>
';
$dom = new DOMDocument;
$dom->loadHTML($htmlString);
foreach($dom->getElementsByTagName('td') as $node)
{
    $arrayTd[] = $dom->saveHTML($node);
}
print_r($arrayTd);

您也可以使用任何csv阅读库。例如这个- http://csv.thephpleague.com/basic-usage/。通过库操作将非常容易

您需要文件夹和位置作为参数来选择文件,您可以使用simpleExcel lib来解析CSV,如下所示

function parseCSV($location,$folder){
    $excel = new SimpleExcel('CSV');
    try{
      $csv=$excel->parser->loadFile($location);
    }catch (Exception $ex){
      $logger->info($ex->getMessage());
    }
    $j = 1;
    /****column name ****/
    if($excel->parser->isRowExists($j)){
        $cols = $excel->parser->getRow($j);
    }
    $i=2;
    $arrval = array();
    /***csv data****/
    while($excel->parser->isRowExists($i)){
        $data=$excel->parser->getRow($i);
    }
}

使用此函数并传递所需的参数,然后执行var_dump($cols)和var_dump($data)。