ホームページ >バックエンド開発 >PHPチュートリアル >PHP で配列を CSV ファイルに変換するにはどうすればよいですか?
配列を 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 中国語 Web サイトの他の関連記事を参照してください。