我试图解析csv文件插入csv内容到我的数据库。数据解析后,数组看起来像
Array
(
[AirportCode
] => GKA
)
,我想提取AirportCode GKA并插入它。一切看起来都很好,但上面数组中的键和值有换行符。
示例代码:
foreach($data['csvData'] as $field)
{
print_r($field);
$AirportCode = str_replace(PHP_EOL, '', $field['AirportCode']);
echo $AirportCode ;
}
但是AirportCode总是返回空。我只是想去掉那些换行符。有人能帮我吗?
未测试
我不确定str_replace()
通过使用转义引用来识别换行字符的能力,但值得一试。
但是您的机场代码没有返回任何东西,因为实际的键似乎在。
中有一个'n(新行字符)。function fixArrayKey(&$arr)
{
$arr=array_combine(array_map(function($str){
return str_replace("'n ","",$str);
},array_keys($arr)),array_values($arr));
foreach($arr as $key=>$val)
{
if(is_array($val)) fixArrayKey($arr[$key]);
}
}
对于你的数组值你可以直接使用:
function fixArrayValue($arr)
{
$return = array();
foreach($arr AS $key => $value){
$return[$key] = rtrim($value, "'n");
}
return $return
}
没有名为'AirportCode'
的数组键,实际的键中有一个换行符。我将通过循环键值对创建一个干净的数组,并将它们添加到一个新数组:
$clean=array();
foreach($data['csvData'] as $key => $value){
$ckey = str_replace(array("'r", "'n"), '', $key);
$cvalue = str_replace(array("'r", "'n"), '', $value);
$clean[$ckey]=$cvalue;
}
var_dump($clean);