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);
        }

// 而替换函数是:

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

但我不知道为什么它不起作用并引发异常:

遇到 PHP 错误

严重性:警告

消息:Import::replace() 缺少参数 1

文件名:库/Import.php

行号:116

基本上我想要在这里导入一个我已经导入的 CSV 文件,现在我想替换数组中存在的任何换行符以替换为空(无)。但是每次我执行这段代码时,它都会抛出一个异常。你们那里的人可以建议吗?请。

谢谢

4

1 回答 1

0

正如评论中指出的那样,根据您的代码判断,您将要删除 that 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 回答