从字符串创建二维数组,但忽略特定字符


Create two dimensional array from string, but ignore a specific character

这是我的字符串,我希望它转换为 2D 数组。

mail@mail.com;"Hi ;John";man;405089;
mail@mail.net;Hi Sarah;woman;405089;

我想从中创建数组。我写了这段代码:

$ret = array_map (
  function ($_) {return explode (',', $_);},
  explode (';', $data)
);
因此,代替","将是";",

而不是";"将是"'",对吗?

但它还没有正常工作。如果你再看一遍,会有"嗨;约翰"..

我想让这段代码忽略" "中的所有内容,因为有一个分号。

首先删除 "和 include " 之间的字符,然后运行你的函数。以下是从字符串中删除"Hi ; John"的单行代码:

$result = preg_replace('/'".*?'"/', '', $subject);
  • '"与角色"字面上相匹配
  • .*?匹配任何字符(换行符除外(, 量词: *? 在零次和无限次之间,尽可能少的次数,根据需要扩展 [懒惰]
  • '"与字面上的字符"匹配
与其

爆炸,不如看看str_getcsv。

如果您指定分隔符,这将处理引号内带有分号的情况,如下所示。

str_getcsv($_, ';')