ホームページ >バックエンド開発 >PHPチュートリアル >PHP で配列を CSV ファイルに変換するにはどうすればよいですか?

PHP で配列を CSV ファイルに変換するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-08 00:52:03614ブラウズ

How can I convert an array into a CSV file in PHP?

配列を 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。