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

时间:2014-08-18 11:15:39

标签: php codeigniter csv newline line-breaks

我正在尝试解析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总是空着。我只是想摆脱那些换行符。有人可以帮助我......?

2 个答案:

答案 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);