我正在尝试解析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总是空着。我只是想摆脱那些换行符。有人可以帮助我......?
答案 0 :(得分:2)
<强>未测试强>
我不确定使用转义引用识别换行符的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
}
答案 1 :(得分:1)
没有名为'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);