phpで色々な種類のファイルを配列にした


phpでファイル操作を行うことが多かったので
ファイルによっての配列作成の違いをまとめました。

ファイルの作成

適当にファイルを作ります。
テスト用として .txt .csv .json の3つのファイルを作ります。

配列の作成

array.php
<?php

  #test.txt 読み込み
  $str = file_get_contents('./test.txt');
  $arr = explode("\n", $str, -1);
  var_dump($arr);

  #test.csv 読み込み
  $str = file_get_contents('./test.csv');
  $arr = explode(",", $str, -1);
  var_dump($arr);

  #test.json 読み込み
  $str = file_get_contents('./test.json');
  $arr = json_decode($str, true);
  var_dump($arr);

出力結果

array(3) {
  [0]=>
  string(11) "[email protected]"
  [1]=>
  string(11) "[email protected]"
  [2]=>
  string(11) "[email protected]"
}
array(3) {
  [0]=>
  string(11) "[email protected]"
  [1]=>
  string(11) "[email protected]"
  [2]=>
  string(11) "[email protected]"
}
array(3) {
  [0]=>
  string(11) "[email protected]"
  [1]=>
  string(11) "[email protected]"
  [2]=>
  string(11) "[email protected]"
}

まとめ

ファイルの形式によって配列の作り方は違う。
しかし、基本的には下記の関数を使えば配列は作れる。

file_get_contents : ファイルを読み込んで文字列として返す
explode : 文字列を区切り文字で分割して配列にする
json_decode : jsonファイル読み込んでデコードする

今回の場合ではexplodeの第3引数に-1を設定して
配列の最後に空文字の値が入らないようにしたり、json_decodeの第2引数をtrueにして
objectではなく配列を作成するようにしています。

公式リファレンスに引数の詳しいことが載っています。

http://php.net/manual/ja/function.file-get-contents.php
http://php.net/manual/ja/function.explode.php
http://php.net/manual/ja/function.json-decode.php

おまけ

.phpファイルを読み込む

test.php
array.php
  #test.php 読み込み
  require('./test.php');
  var_dump($arr);

出力結果 :

array(3) {
  [0]=>
  string(11) "[email protected]"
  [1]=>
  string(11) "[email protected]"
  [2]=>
  string(11) "[email protected]"
}