將陣列轉換為CSV:綜合指南
CSV(逗號分隔值)是一種廣泛使用的用於儲存表格資料的格式。將數組轉換為 CSV 檔案可以輕鬆進行資料傳輸和分析。本文提供如何完成此轉換的逐步指南。
數組
考慮以下stdClass 對像數組:
stdClass Object ( [OrderList_RetrieveByContactResult] => stdClass Object ( [OrderDetails] => stdClass Object ( [entityId] => 1025298 [orderId] => 10952 [... various properties ...] ) ) )
轉換函數
要將陣列轉換為CSV,我們可以使用封裝邏輯的輔助函數。以下是一個範例函數:
/** * Formats a line (passed as a fields array) as CSV and returns the CSV as a string. * Adapted from http://us3.php.net/manual/en/function.fputcsv.php#87120 */ function arrayToCsv( array &$fields, $delimiter = ';', $enclosure = '"', $encloseAll = false, $nullToMysqlNull = false ) { $delimiter_esc = preg_quote($delimiter, '/'); $enclosure_esc = preg_quote($enclosure, '/'); $output = array(); foreach ( $fields as $field ) { if ($field === null && $nullToMysqlNull) { $output[] = 'NULL'; continue; } // Enclose fields containing $delimiter, $enclosure or whitespace if ( $encloseAll || preg_match( "/(?:${delimiter_esc}|${enclosure_esc}|\s)/", $field ) ) { $output[] = $enclosure . str_replace($enclosure, $enclosure . $enclosure, $field) . $enclosure; } else { $output[] = $field; } } return implode( $delimiter, $output ); }
此函數採用陣列、分隔符號和包圍字元作為輸入。它處理數組中的每個字段,包含包含特殊字元的字段。最後,它將字段格式化為 CSV 字串並返回。
應用轉換
要轉換我們的範例數組,我們可以呼叫arrayToCsv 函數:
$fields = [$array->OrderList_RetrieveByContactResult->OrderDetails]; $csv = arrayToCsv($fields);
$csv 變數現在包含轉換後的CSV 資料。您可以將其儲存到文件或用於進一步處理。
以上是如何在 PHP 中將陣列轉換為 CSV 檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!