用逗号插入数组字符串,然后将其分隔

insert in array string with comma, then separate it

几个字段值是类似这样的字符串: "IDX, CLV1, FLST, MRIS, RCOM, VOW, CLV2, HTA, CYBR, ILAX, HOL"

当我 运行 到 $dataValues = implode(", ", $ArrayValues); 它被逗号分隔时,我需要将该字符串保留为一个值。

这里有更多代码:

foreach($result as $listing){  //loops throught every listing.
$fields = $listing->toArray(); //convert listing fields and values to array

 foreach($fields as $field => $value){
    $ArrayValues[] = $value; //value being added to array
    $ArrayFields[] = $field; //field name being added to array
    unset($value); 
    unset($field);
 }
 //CREATE THE MYSQL STRING FOR THE VALUES.
 $dataValues = implode(", ", $ArrayValues); 
 unset($ArrayValues);

 //CREATE THE MYSQL STRING FOR THE FIELD NAMES
 $fieldTitleNames = '`' . implode('`, `', $ArrayFields) . '`'; 
 unset($ArrayFields);

 //CONVERTE FIELDS ARRAY TO MYSQL STRING   
 $fieldTitleNames = '`' . implode('`, `', $ArrayFields) . '`';
 unset($ArrayFields);

 //CONVERT VALUES ARRAY TO MYSQL STRING       
 $fieldTitleNames = '`' . implode('`, `', $ArrayFields) . '`';
 unset($ArrayFields);

 $sql1 = "INSERT INTO ".$table_name." ($fieldTitleNames) VALUES $dataValues)";
}

感谢您的耐心等待。

不要在创建数组后内爆,而是在循环时创建一个字符串

所以

$ArrayValues[] = $value; //value being added to array

变成

$dataValues.=  $value.',';

循环内部。

你应该在循环之前初始化字符串 $dataValues:

$dataValues='';

并在循环后删除最后添加的逗号

$dataValues=rtrim(',',$dataValues);

这避免了在您的情况下使用内爆的副作用