0

以下のコードで何が間違っているのかわかりませんが、機能していません。

if($_data_count = count($_csv_raw_array) > 0){
            foreach($_csv_raw_array as $_csv_row){
                array_push($this->_data, array_map(call_user_func(array($this, 'replace')), $_csv_row));
            }
            return $this->result(true, 'CSV parsing done.', '', $this->_data);
        }

//そしてreplace関数は次のとおりです:

    private function replace($_value){
    return preg_match('/(\r\n|\n|\r)/', $_value) ? '' : $_value;
}

しかし、なぜそれが機能せず、例外をスローするのかわかりません。

PHPエラーが発生しました

重大度:警告

メッセージ:Import :: replace()の引数1がありません

ファイル名:libraries / Import.php

行番号:116

基本的に、ここでやりたかったのは、すでにインポートしたCSVファイルをインポートすることです。次に、配列内に存在する改行文字を空(なし)に置き換えます。しかし、このコードを実行するたびに、例外がスローされます。あなたはそこにいる人々が提案できますか?お願いします。

ありがとう

4

1 に答える 1

0

コメントで指摘されているように、コードから判断するとcall_user_func、それを削除する必要があります。これは、関数がすぐに呼び出される原因であり、必要なものではないように思われるためです。これは、内のすべての要素をフィルターで除外することだと思います。各反復での$_csv_row:

if($_data_count = count($_csv_raw_array) > 0){
    foreach($_csv_raw_array as $_csv_row){
        array_push($this->_data, array_map(array($this, 'replace'), $_csv_row));
    }
    return $this->result(true, 'CSV parsing done.', '', $this->_data);
}

ただし、私たちはあなたの意図を推測することしかできません。サンプルcsvと目的の出力を提供して、問題が解決しない場合に探しているものをより正確に理解できるようにすることをお勧めします。

于 2012-09-10T12:00:31.133 に答える