区分逗号和逗号空间

时间:2013-05-22 23:27:46

标签: php

我有一行来自这样的CSV文件:

“项目1”,“项目2”,“项目3”,“项目4”,“项目5,测试6” 重复数千行 物品之间没有空格。

项目5和测试6之间的逗号应该在那里。我试图将这一行变成一个数组。

$i=1;
$temp_array = array();
$number = COUNT($array);
while($i <= $number) {
    $temp_array[] = explode(",", $array[$i]);
    $i++;
}

数组当前正在输出“

[1] => Array
        (
            [0] => "Item 1"
            [1] => "Item 2"
            [2] => "Item 2"
            [3] => "Item 2"
            [4] => "Item 5
            [5] => Test 6"

        )

输出如下:

[1] => Array
        (
            [0] => "Item 1"
            [1] => "Item 2"
            [2] => "Item 2"
            [3] => "Item 2"
            [4] => "Item 5, Test 6"

        )

3 个答案:

答案 0 :(得分:2)

我会考虑使用PHP的函数'str_getcsv' - 可能会省去一些麻烦。

此函数将CSV字符串解析为PHP数组。 http://php.net/manual/en/function.str-getcsv.php

示例:

$array = str_getcsv($csv_string, ",");

答案 1 :(得分:0)

按字面意思匹配引号。

$i=1;
$temp_array = array();
$number = COUNT($array);
while($i <= $number) {
    $temp_array[] = explode('","', $array[$i]);
    $i++;
}

如果你使用的是PHP 5或更高版本,你也可以这样做:

$string = ''; //your string.
$delimeter = ',';
$enclosure = '"';

$newArray = str_getcsv($input,$delimiter,$enclosure);

答案 2 :(得分:0)

Splitting strings with regex

$temp_array = preg_split (",(?=[^ ])" , $array[$i]);
//                           ^ = "look ahead and make sure its not a space"

在javascript中测试