从字符串创建二维数组,但忽略特定字符
Create two dimensional array from string, but ignore a specific character
这是我的字符串,我希望将其转换为二维数组。
mail@mail.com;"Hi ;John";man;405089;
mail@mail.net;Hi Sarah;woman;405089;
我想以此创建数组。我找到了这段代码:
$ret = array_map (
function ($_) {return explode (',', $_);},
explode (';', $data)
);
因此,不是“,”而是“;”而不是';'应该是'\n',对吧?
但它还不能正常工作。再看一遍,有"Hi ; John"..
我想让这段代码忽略“”内的所有内容,因为有一个分号。
与其爆炸,不如看看 str_getcsv。
如果您指定分隔符,这将处理您在引号内使用分号的情况,就像这样。
str_getcsv($_, ';')
首先删除“之间的字符(包括”),然后 运行 您的函数。这是从您的字符串中删除 "Hi ; John"
的单行代码:
$result = preg_replace('/\".*?\"/', '', $subject);
\"
按字面意思匹配字符 "
.*?
匹配任意字符(换行符除外),量词:*?
零次和无限次之间,次数越少越好,按需扩展[懒惰]
\"
按字面意思匹配字符 "
这是我的字符串,我希望将其转换为二维数组。
mail@mail.com;"Hi ;John";man;405089;
mail@mail.net;Hi Sarah;woman;405089;
我想以此创建数组。我找到了这段代码:
$ret = array_map (
function ($_) {return explode (',', $_);},
explode (';', $data)
);
因此,不是“,”而是“;”而不是';'应该是'\n',对吧?
但它还不能正常工作。再看一遍,有"Hi ; John"..
我想让这段代码忽略“”内的所有内容,因为有一个分号。
与其爆炸,不如看看 str_getcsv。
如果您指定分隔符,这将处理您在引号内使用分号的情况,就像这样。
str_getcsv($_, ';')
首先删除“之间的字符(包括”),然后 运行 您的函数。这是从您的字符串中删除 "Hi ; John"
的单行代码:
$result = preg_replace('/\".*?\"/', '', $subject);
\"
按字面意思匹配字符"
.*?
匹配任意字符(换行符除外),量词:*?
零次和无限次之间,次数越少越好,按需扩展[懒惰]\"
按字面意思匹配字符"