前提
test1.csv↓
東京
大阪
名古屋
test2.csv↓
北海道
東京
大阪
埼玉
実現したいこと
test1.csvにある1行目の文字列がtest2.csvの1行目の文字列と同じか確認し
同じであれば同じ文字列です
一致しなければ異なる文字列です
と表示させたいです。
while文を2つ使い
test1.csvの1行目の値を$resultに代入
test2.csvの1行目の値を$result2に代入
strcmp($result, $result2)で比較
同じであれば同じ文字列です
一致しなければ異なる文字列です
と表示させ
test2.csvの最終行まで実施し、最後まで行ったら
test1.csvの2行目の値を$result1に代入して
$result2の値をtest2.csvの最初の行の値を駄隠喩して比較...
ということを実施したいです。
該当のソースコード
<?php $read_file1 = 'test1.csv'; //読み込むファイルを指定1 $read_file2 = 'test2.csv'; //読み込むファイルを指定2 // ファイルのオープン $fp_r1 = fopen($read_file1, "rb"); //読み込むをファイル開く宣言1 $fp_r2 = fopen($read_file2, "rb"); //読み込むをファイル開く宣言2 // 読み込みファイルを1行ずつ読み込みループする while (($data1 = fgetcsv($fp_r1)) != false) { $result = $data1[0]; while (($data2 = fgetcsv($fp_r2)) != false) { $result2 = $data2[0]; var_dump($result); var_dump($result2); if ( strcmp($result, $result2) == 0 ) { echo "同じ文字列です\n"; echo "\n"; } else { echo "異なる文字列です\n"; echo "\n"; } $data2 ="test"; } } fclose($fp_r1); //読み込みファイルクローズ fclose($fp_r2); //読み込みファイルクローズ
試したこと
自分が書いたコードだと、test1.csvの1行目の値とtest2.csvの値を比較し以下のような結果になりました。
1回目のwhile文がうまく動いていないのかと思いますが、whileの条件が悪いのでしょうか?
ご教授いただきたいです。
string(6) "東京"
string(9) "北海道"
異なる文字列です
string(6) "東京"
string(6) "東京"
同じ文字列です
string(6) "東京"
string(6) "大阪"
異なる文字列です
string(6) "東京"
string(6) "埼玉"
異なる文字列です
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

回答1件
あなたの回答
tips
プレビュー