数组映射+类方法/函数作为回调+call_user_func


array map + class method/function as callback + call_user_func

我不知道下面的代码做错了什么,但它不起作用。

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

文件名:librarys/Import.php

线路编号:116

基本上,我想在这里导入一个已经导入的CSV文件,现在我想用空(无)替换数组中的任何换行符。但每次执行此代码时,它都会抛出一个异常。你们这些人能提出建议吗。请

Thanx

正如评论中所指出的,根据您的代码判断,您将希望删除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和所需的输出,这样我们就可以更准确地了解你在寻找什么,如果这不能解决问题的话。