PHPの質問です


old.txt
**********
2012-01-03
2012-03-21
2012-05-12
**********

new.txt
**********
2012-05-12
2012-07-21
2012-09-06
**********
という2つのテキストファイルがあるのですが
この2つのテキストファイルを比較して

a.txt
**********
2012-07-21
2012-09-06
**********
というように、newテキストからold.txtにある行を削除して
残った部分をa.txtにoutputしてくれるようなプログラムを教えてください

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2013/04/11 00:04:54
  • 終了:2013/04/13 22:24:52

ベストアンサー

id:Cherenkov No.1

Cherenkov回答回数1502ベストアンサー獲得回数4922013/04/11 01:05:01

ポイント300pt

うーん

<?php
$file_new = file("new.txt", FILE_IGNORE_NEW_LINES);
$file_old = file("old.txt", FILE_IGNORE_NEW_LINES);

$result = array();
foreach ($file_new as $line) {
  if (!in_array($line, $file_old)) {
    array_push($result, $line);
  }
}
file_put_contents("a.txt", join("\n", $result));
  • id:tezcello
    foreach() で回すのでも全然問題無いのですが、単純な比較しかしないのですから
    array_diff() で十分ではないでしょうか?
    http://jp1.php.net/manual/ja/function.array-diff.php

    $resalt = array_diff($file_new, $file_old);

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません