PHP 数组导入器的数据规范化?

PHP data normalization on array importer?

是否可以直接在 csv 导入器数组上进行数据标准化? 我有以下内容:

          foreach($importData_arr as $importData){
           // var_dump($importData);
            $insertData = array(
               "EAN"=>$importData[0], preg_replace('\'', '', "EAN"),
               "Brand"=>$importData[1],
               "Name"=>$importData[2],
               "Size"=>$importData[3],
               "PCD"=>$importData[4],
               "Offset"=>$importData[5],
               "Bore"=>$importData[6],
               "Color"=>$importData[7],
               "Price"=>$importData[8],
               "Stock"=>$importData[9],
               "ImageURL"=>$importData[10]);
            RimsUpload::insertData($insertData);

但我收到错误: preg_replace(): 未找到结束分隔符“”

据我所知,此 \' 应该允许在我的 EAN 列中搜索 ' 并替换为 'nothing'。但是我不确定它是否可以像这样直接放在阵列上?

当您想替换一个符号时,不需要正则表达式,str_replace可以完成这项工作。

此外,preg_replace('\'', '', "EAN")甚至 具有正确的分隔符,(例如 #):

preg_replace('#\'#', '', "EAN")

将return字符串EAN.

显然,您想要替换 $importData[0] 值中的 '

所以你的代码应该是:

$insertData = array(
    "EAN" => str_replace('\'', '', $importData[0]),
    "Brand"=>$importData[1],
    "Name"=>$importData[2],
    "Size"=>$importData[3],
    "PCD"=>$importData[4],
    // ...

如果你还想使用正则表达式(这里是多余的),那么提供correct delimiters,例如:

$insertData = array(
    "EAN" => preg_replace('#\'#', '', $importData[0]),
    "Brand"=>$importData[1],
    "Name"=>$importData[2],
    "Size"=>$importData[3],
    "PCD"=>$importData[4],
    // ...