将一个字符串转换为数组 - PHP

4
我有以下字符串:

可能是重复问题:
使用PHP加载和读取csv文件

我有以下字符串:

Mr,Tom,Jones,Add1,Add2,"Add3,Add3 extra",Town,County,postcode,99999,888,777

我正在尝试将字符串转换为以下格式的数组:
Array
(
    [0] => Mr
    [1] => Tom
    [2] => Jones
    [3] => Add1
    [4] => Add2
    [5] => "Add3,Add3 extra"
    [6] => Town
    [7] => County
    [8] => Postcode
    [9] => 99999
    [10] => 888
    [11] => 777
)

如果你使用逗号将字符串分割,那么第五个数组项会被分成两部分,我想避免这种情况。原始数据来自CSV文件。
最终,我想导入CSV文件并根据正确的标题将文件内容创建为新的数据库。
提前致谢。
4个回答

6

尝试使用 fgetcsv()

fgetcsv - 从文件指针获取行并解析CSV字段


1
str_getcsv()也可以完成这项工作。 - Florent
如果他有一个包含数据的文件(CSV通常意味着“我有一个文件”),那么应该使用fgetcsv()。 - Peter Kiss

2
$array = str_getcsv( 'Mr,Tom,Jones,Add1,Add2,"Add3,Add3 extra",Town,County,postcode,99999,888,777', ',', '"' );

这将让您得到一个包含所需内容的数组。
使用str_getcsv()函数。

0
<?php
$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        echo "<p> $num fields in line $row: <br /></p>\n";
        $row++;
        for ($c=0; $c < $num; $c++) {
            echo $data[$c] . "<br />\n";
        }
    }
    fclose($handle);
}
?>

fgetcsv返回


0

您可以使用 str_getcsv() 函数。

str_getcsv — 将 CSV 字符串解析为数组


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接