我有一个问题,我想使用 explode 函数拆分一个字符串变量,但有一个限制,想象下一个字符串变量具有下一个值:
$data = "3, 18, 'My name is john, i like to play piano'";
使用 explode 函数:explode(",", $data),输出将是:
array(
[0] => 3,
[1] => 18,
[2] => 'My name is john,
[3] => i like to play piano'
);
我的目标是用逗号分隔变量 $data,不包括“”字符之间的逗号。
例如数组(
[0] => 3,
[1] => 18,
[2] => '我叫约翰,我喜欢弹钢琴'
);
如果有人能告诉我一个方法,我将不胜感激。
最佳答案
这看起来很像 CSV 数据。您可以使用 str_getcsv解析这个。
var_dump(str_getcsv("3, 18, 'My name is john, i like to play piano'", ',', "'"));
应该导致:
array(3) {
[0] =>
string(1) "3"
[1] =>
string(3) " 18"
[2] =>
string(12) "My name is john, i like to play piano"
}
您可能还想对每个数组元素应用 trim
,方法是使用 array_map
:
$string = "3, 18, 'My name is john, i like to play piano'";
var_dump(array_map('trim', str_getcsv($string, ',', "'")));
关于php - PHP explode() 函数的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12977840/