phpでファイル操作を行うことが多かったので
ファイルによっての配列作成の違いをまとめました。
ファイルの作成
適当にファイルを作ります。
テスト用として .txt .csv .json の3つのファイルを作ります。
test.txt
aaa@aaa.com
bbb@bbb.com
ccc@ccc.com
test.csv
aaa@aaa.com,bbb@bbb.com,ccc@ccc.com,
test.json
{"0":"aaa@aaa.com","1":"bbb@bbb.com","2":"ccc@ccc.com"}
配列の作成
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) "aaa@aaa.com"
[1]=>
string(11) "bbb@bbb.com"
[2]=>
string(11) "ccc@ccc.com"
}
array(3) {
[0]=>
string(11) "aaa@aaa.com"
[1]=>
string(11) "bbb@bbb.com"
[2]=>
string(11) "ccc@ccc.com"
}
array(3) {
[0]=>
string(11) "aaa@aaa.com"
[1]=>
string(11) "bbb@bbb.com"
[2]=>
string(11) "ccc@ccc.com"
}
まとめ
ファイルの形式によって配列の作り方は違う。
しかし、基本的には下記の関数を使えば配列は作れる。
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
<?php
$arr = [
'aaa@aaa.com',
'bbb@bbb.com',
'ccc@ccc.com'
];
array.php
#test.php 読み込み
require('./test.php');
var_dump($arr);
出力結果 :
array(3) {
[0]=>
string(11) "aaa@aaa.com"
[1]=>
string(11) "bbb@bbb.com"
[2]=>
string(11) "ccc@ccc.com"
}