将字符串转换为数组 - PHP

时间:2012-08-10 15:01:57

标签: php string csv explode

  

可能重复:
  Load and read a csv file with php

我有以下字符串:

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
)

如果你用“,”爆炸字符串,它会将数组项目5分成两部分,我试图避免。原始数据来自CSV。

Ultimatly我正在尝试导入CSV并动态创建一个新数据库,其中包含正确标题的标题和文件内容。

提前致谢。

4 个答案:

答案 0 :(得分:6)

尝试fgetcsv()

  

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

答案 1 :(得分:2)

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

这将使您获得所需的数组。

str_getcsv()

答案 2 :(得分: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

答案 3 :(得分:0)

您可以使用str_getcsv()

  

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