我有一个问题,我想使用explode函数拆分一个字符串变量,但有一个限制,想象下一个字符串变量具有下一个值:
$data = "3, 18, 'My name is john, i like to play piano'";
Run Code Online (Sandbox Code Playgroud)
使用explode函数:explode(",",$ data),输出将是:
array(
[0] => 3,
[1] => 18,
[2] => 'My name is john,
[3] => i like to play piano'
);
Run Code Online (Sandbox Code Playgroud)
我的目标是用逗号分隔变量$ data,排除''chatacters之间的变量.
例如 array(
[0] => 3,
[1] => 18,
[2] => 'My name is john, i like to play piano'
);
如果有人能告诉我这样做的方法,我将不胜感激.
这看起来很像CSV数据.您可以使用str_getcsv来解析它.
var_dump(str_getcsv("3, 18, 'My name is john, i like to play piano'", ',', "'"));
Run Code Online (Sandbox Code Playgroud)
应该导致:
array(3) {
[0] =>
string(1) "3"
[1] =>
string(3) " 18"
[2] =>
string(12) "My name is john, i like to play piano"
}
Run Code Online (Sandbox Code Playgroud)
您可能也希望trim通过使用array_map以下方法应用于每个数组元素:
$string = "3, 18, 'My name is john, i like to play piano'";
var_dump(array_map('trim', str_getcsv($string, ',', "'")));
Run Code Online (Sandbox Code Playgroud)
使用:str_getcsv
// set the delimiter with ',', and set enclosure with single quote
$arr = str_getcsv ($data, ',', "'");
Run Code Online (Sandbox Code Playgroud)
您可以使用str_getcsv()函数:
$data = "3, 18, 'My name is john, i like to play piano'";
$pieces = str_getcsv($data, ',', "'");
Run Code Online (Sandbox Code Playgroud)
函数的第一个参数是要拆分的字符串.
第二个参数是您需要拆分的分隔符.
第三个参数是单个字符,当在第一个参数中用作一对(uninsecaped)时,将被视为一个字段,实际上忽略了该字符串之间的分隔符.
| 归档时间: |
|
| 查看次数: |
4493 次 |
| 最近记录: |