簡體   English   中英

數組映射+類方法/函數作為回調+ 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

文件名:libraries / Import.php

行號:116

基本上,我想在這里導入已經導入的CSV文件,現在我想將數組中存在的所有換行字符替換為空(無)。 但是每次我執行此代碼時,都會引發異常。 你們那里的人可以建議嗎? 請。

謝謝

正如評論中所指出的那樣,根據您的代碼判斷,您將希望刪除該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和所需的輸出,以便在無法解決問題的情況下更准確地了解您要查找的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM