PHP:如何用逗号分解字符串,但不是逗号在引号内?

Nic*_*iwi 20 php string explode

我需要在逗号中将我的字符串输入分解为数组.但是该字符串在引号内包含逗号.

输入:

$line = 'TRUE','59','A large number is 10,000';

$linearray = explode(",",$line);
$linemysql = implode("','",$linearray);
Run Code Online (Sandbox Code Playgroud)

返回$ linemysql为:

'TRUE','59','A large number is 10','000'
Run Code Online (Sandbox Code Playgroud)

我怎样才能完成这个,爆炸忽略引号内的逗号?

Rus*_*ias 56

由于您使用的是逗号分隔值,因此可以使用str_getcsv.

str_getcsv($line, ",", "'");
Run Code Online (Sandbox Code Playgroud)

将返回:

Array
(
    [0] => TRUE
    [1] => 59
    [2] => A large number is 10,000
)
Run Code Online (Sandbox Code Playgroud)


Pas*_*TIN 5

看来你不想用逗号分隔你的字符串,而是用引号+逗号+引号连续?

如果是这样preg_split,这里的功能可能会有所帮助.


例如,使用这部分代码:

$line = "'TRUE','59','A large number is 10,000'";
$parts = preg_split("/','/", $line);
var_dump($parts);
Run Code Online (Sandbox Code Playgroud)

我得到以下输出:

array
  0 => string ''TRUE' (length=5)
  1 => string '59' (length=2)
  2 => string 'A large number is 10,000'' (length=25)
Run Code Online (Sandbox Code Playgroud)

从那开始,现在是$line在调用之前删除字符串的第一个和最后一个引号的问题preg_split- 因为它们是分隔符,并且与分割模式不匹配.