我不知道下面的代码做错了什么,但它不起作用。
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('/(rn|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和所需的输出,这样我们就可以更准确地了解你在寻找什么,如果这不能解决问题的话。