CSV to array
将CSV的字符串 截断成相应的 字符串值数组 PL/SQL jQuery CSV function csv_to_array (p_csv_line in varchar2, p_separator in varchar2 := g_default_separator) return t_str_arrayas type t_str_array as table of varchar2(4000); l_returnvalue t_str_a
将CSV的字符串截断成相应的 字符串值数组 PL/SQL jQuery CSV
function csv_to_array (p_csv_line in varchar2, p_separator in varchar2 := g_default_separator) return t_str_array as type t_str_array as table of varchar2(4000); l_returnvalue t_str_array := t_str_array();--返回的字符串数组类型 l_start_separator pls_integer := 0 ; l_stop_separator pls_integer := 0 ; l_length pls_integer := 0 ;--长度 l_idx binary_integer := 0 ; l_quote_enclosed boolean := false ; l_offset pls_integer := 1 ; begin /* Purpose: convert CSV line to array of values Remarks: based on code from http://www.experts-exchange.com/Database/Oracle/PL_SQL/Q_23106446.html Who Date Description ------ ---------- -------------------------------- MBR 31.03.2010 Created fartpig 07.03.2011 noted */ /* 相应的CSV中的注意 就是关于 "" 中包含分隔符 ,的情况,需要通过标记 是否有双引号的 变量来进行扫描查找 同时保存三个扫描量:扫描开始位置(扫描头),扫描结束位置(扫描尾),扫描偏移量(用来标记扫描的偏移) */ --获得长度 l_length := length(p_csv_line) ; if l_length > 0 then loop --递增 标记的数据下标 l_idx := l_idx + 1; l_quote_enclosed := false; --判断开始分割的 下一个字符是否是 " if substr(p_csv_line, l_start_separator + 1, 1) = '"' then --如果是 标记其 有双引号 l_quote_enclosed := true; --设定 扫描偏移单位为 2 l_offset := 2; --查找 下一个双引号的位置 l_stop_separator := instr(p_csv_line, '"', l_start_separator + l_offset, 1); else --如果没有 双引号 --设定 扫描偏移单位为 1 l_offset := 1; --查找 下一个 分割符 的位置 l_stop_separator := instr(p_csv_line, p_separator, l_start_separator + l_offset, 1); end if; --如果 没有找到 扫描的下一个 位置 if l_stop_separator = 0 then --设定 扫描的下一个位置为 总长度+1 从而推出循环 l_stop_separator := l_length + 1; end if; --将 扫描得到的 值 保存到数组中 l_returnvalue.extend; l_returnvalue(l_idx) := substr(p_csv_line, l_start_separator + l_offset, (l_stop_separator - l_start_separator - l_offset)); --如果扫描到头 就推出循环 exit when l_stop_separator >= l_length; --如果有 双引号 if l_quote_enclosed then --将扫描位置 +1 从而过滤掉" l_stop_separator := l_stop_separator + 1; end if ; --标记 扫描的开始位置 为 扫描到的位置 l_start_separator := l_stop_separator; end loop; end if; -- 返回结果 return l_returnvalue; end csv_to_array;

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP中深度複製數組的方法包括:使用json_decode和json_encode進行JSON編碼和解碼。使用array_map和clone進行深度複製鍵和值的副本。使用serialize和unserialize進行序列化和反序列化。

PHP數組鍵值翻轉方法效能比較顯示:array_flip()函數在大型數組(超過100萬個元素)下比for迴圈效能更優,耗時更短。手動翻轉鍵值的for迴圈方法耗時相對較長。

PHP的array_group_by函數可依鍵或閉包函數將陣列中的元素分組,傳回關聯數組,其中鍵為組名,值是屬於該組的元素數組。

在PHP中執行陣列深度複製的最佳實踐是:使用json_decode(json_encode($arr))將陣列轉換為JSON字串,然後再轉換回陣列。使用unserialize(serialize($arr))將陣列序列化為字串,然後將其反序列化為新陣列。使用RecursiveIteratorIterator迭代器對多維數組進行遞歸遍歷。

多維數組排序可分為單列排序和嵌套排序。單列排序可使用array_multisort()函數依列排序;巢狀排序需要遞歸函數遍歷陣列並排序。實戰案例包括按產品名稱排序和按銷售量和價格複合排序。

PHP的array_group()函數可用來按指定鍵對陣列進行分組,以尋找重複元素。函數透過以下步驟運作:使用key_callback指定分組鍵。可選地使用value_callback確定分組值。對分組元素進行計數並識別重複項。因此,array_group()函數對於尋找和處理重複元素非常有用。

PHP提供了讀取、寫入、解析和拼接CSV檔案的便捷函數,並提供了處理大CSV檔案的生成器函數。本文示範如何使用這些函數從CSV檔案讀取使用者資料並將其匯入資料庫。

是的,在許多程式語言中,數組可以作為函數參數,函數將對其中儲存的資料執行操作。例如C++中的printArray函數可以列印數組中的元素,而Python中的printArray函數可以遍歷數組並列印其元素。這些函數對陣列所做的修改也會反映在呼叫函數中的原始數組中。
