将str_replace用于整个数组[仅从csv获取第一行]

时间:2014-01-07 08:24:32

标签: php arrays csv row str-replace

我找到了这个问题的一个例子,但无法正确实现(仍然是相同的结果或没有结果)

我有一个代码,它读取一个csv文件,其行如下所示:

Hans,Ueli,Firma,Rang,00419999999,062 123 45 678,+4179 408 88 20

现在我想更正这些数字并将它们全部放在一个特定的格式中。

我用这段代码实现了这个目的:

<?php 
//Korrigiere telnummern in csv 

if (($handle = fopen("directory.txt", "rw")) !== FALSE) {

    $row=0; $csv_row = array();

    while (($csv_data = fgetcsv($handle, 1000, ",")) !== FALSE) {

        $csv_row[] = $csv_data;

        $replace = array("+41", "0041");
        $correct = str_replace($replace, "0", $csv_data);
        $correct = str_replace("+", "00", $correct);
        $corrected = str_replace(" ", "", $correct); 
    }
    fclose($handle); 
}

var_dump($corrected); 

?>

[你能告诉我为什么我var_dump($csv_data)得到一个布尔答案?]

我现在的问题是,它只占用csv文件的第一行 如何使用此str_replace组合检查每一行?

之后我想覆盖旧的结果。 (但我想我可以自己做这个)

非常感谢你的时间和帮助。

编辑:

var_dump($csv_row);

会给我:

array(2) {
  [0]=>
  array(7) {
    [0]=>
    string(7) "Vorname"
    [1]=>
    string(8) "Nachname"
    [2]=>
    string(5) "Firma"
    [3]=>
    string(4) "Rang"
    [4]=>
    string(10) "0612345678"
    [5]=>
    string(14) "062 123 45 678"
    [6]=>
    string(12) "+41793057148"
  }
  [1]=>
  array(7) {
    [0]=>
    string(4) "Hans"
    [1]=>
    string(4) "Ueli"
    [2]=>
    string(5) "Firma"
    [3]=>
    string(4) "Rang"
    [4]=>
    string(11) "00419999999"
    [5]=>
    string(14) "062 123 45 678"
    [6]=>
    string(4) "0900"
  }
}

1 个答案:

答案 0 :(得分:0)

我没有得到var_dump($csv_data)的任何布尔值。还尝试在while循环中转储$corrected变量以处理已处理的行。

 <?php 
//Korrigiere telnummern in csv 

if (($handle = fopen("directory.txt", "rw")) !== FALSE) {

    $row=0; $csv_row = array();

    while (($csv_data = fgetcsv($handle, 1000, ",")) !== FALSE) {

        $csv_row[] = $csv_data;

        $replace = array("+41", "0041");
        $correct = str_replace($replace, "0", $csv_data);
        $correct = str_replace("+", "00", $correct);
        $corrected = str_replace(" ", "", $correct); 
        var_dump($csv_data);
                    var_dump($corrected); 
    }
    fclose($handle); 
}



?>