UI設計したり、ウェブシステムを開発したりします。 

SQL見るだけクエリ#047 PHPの配列をCSVファイルに保存、追記する方法

記入日:2023-02-24 編集日:2023-02-24

SQL見るだけクエリ。今回もPHPの機能ですが、fputcsv関数やfile_put_contents関数を使ってPHPの配列をCSVファイルに保存、追記する方法を考えてみようと思います。

この記事を読むと(約5分)
データベースを使わずに、CSVファイルに文字列を保存、追記する方法がイメージできます。

fputcsv関数やfile_put_contents関数を使うと
配列の内容をCSVファイルに保存することができます。

 

例えば、以下のような配列があるとします。

//配列を定義する
$array = array(
  array(1, "baseball", 99),
  array(2, "volleyball", 66),
  array(3, "tennis", 11)
);
 

fputcsv関数を使う場合は、以下のように書くことができます。

//ファイルを開く
$fp = fopen("test.csv", "w");

//配列の各要素に対してCSV形式で書き込む
foreach ($array as $data) {
  fputcsv($fp, $data);
}

//ファイルを閉じる
fclose($fp);

このコードを実行すると、test.csvに以下のような内容が保存されます。

1,baseball,99
2,banana,66
3,volleyball,11
 

file_put_contents関数を使う場合は、以下のように書くことができます。

//配列からCSV形式の文字列に変換する関数
function array_to_csv($array) {

  //出力用の変数を初期化する
  $output = "";

  //配列の各要素に対して処理する
  foreach ($array as $data) {

    //要素内のカンマやダブルクォートをエスケープする
    $escaped_data = array_map(function($value) {
      return '"' . str_replace('"', '""', $value) . '"';
    }, $data);

    //カンマで区切って1行分の文字列にする
    $line = implode(",", $escaped_data);

    //改行コードを追加して出力用変数に連結する
    $output .= $line . "\n";

  }

  //出力用変数を返す
  return $output;

}

//配列からCSV形式の文字列に変換する
$csv = array_to_csv($array);

//ファイルに書き込む
file_put_contents("test.csv", $csv);

このコードも同じくtest.csvに同じ内容が保存されます。

 

SQLの使いどころ

サイトに大量の情報を掲載することは、ユーザーにとってとても便利なことです。しかし、情報が多すぎると、目的の情報を見つけるのが困難になります。そのため、SQLを使用することで、情報を効率的に管理することができます。

SQLを使用することで、データベース内の情報を検索したり、フィルタリングしたりすることができます。これにより、ユーザーは目的の情報をスムーズかつ簡単に見つけることができます。

また、SQLを使用することで、データを集計したり、統合したりすることもできます。これにより、ユーザーはさまざまな視点から情報を分析することができます。つまり、サイトに多くの情報を掲載することが重要である一方で、その情報を効率的かつ簡単に管理することが求められる場合には、SQLが不可欠であるといえます。

KK

機械工学を専攻。工業デザイナーとして、国内及び海外の自動車・搬送ラインの設計などに従事した後、2003年にウェブシステム会社を設立。UI設計やウェブシステムの開発、DX化のディレクションなどを行っています。