将数组转换为 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中文网其他相关文章!