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

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

Barbara Streisand
リリース: 2024-11-10 02:51:02
オリジナル
1037 人が閲覧しました

How to Convert a Multi-Dimensional Array into a CSV File?

配列を CSV に変換する

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

配列:
指定された配列には複数のレベルのオブジェクトが含まれており、

解決策:
このような配列を CSV ファイルに変換するには、arrayToCsv() のような関数を使用できます。この関数は配列を入力として受け取り、フィールドを適切にフォーマットおよびエスケープすることで 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 ファイルに変換されますコード:

$csvData = arrayToCsv($array);
ログイン後にコピー

出力:
$csvData 変数には配列の CSV 文字列表現が含まれるようになり、さらに処理したり、ファイルに書き込んだり、統合したりできます。適切なアプリケーションを使用して。このアプローチを採用することで、提供された多次元配列を効率的に CSV 形式に変換できます。

以上が多次元配列を CSV ファイルに変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート