如何在解析数组中的数据时删除新行或换行符


How to remove new line or line breaks while parsing data from an array

我试图解析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);