特定の「列」に単語が表示される回数を読み取り、カウントしたい、絶えず変化する CSV ファイルのディレクトリがあります。次のコードを使用して、単一のファイルで正常に実行しています。
$file = 'Some\Random\Directory\myfile.txt');
$fh = fopen($file, 'rb');
$tag = array();
while($col = fgetcsv($fh)) {
if (isset($tag[$col[2]])) {
$tag[$col[2]]++;
} else {
$tag[$col[2]] = 1;
}
}
fclose($fh);
$foo = ($tag['foo']);
$bar = ($tag['bar']);
echo $foo;
しかし、次のコードでディレクトリ全体を解析しようとすると、ハングアップしました。
$files = glob('Some\Random\Directory\*.txt');
foreach($files as $file){
$fh = fopen($file, 'rb');
$tag = array();
while($col = fgetcsv($fh)) {
if (isset($tag[$col[2]])) {
$tag[$col[2]]++;
} else {
$tag[$col[2]] = 1;
}
}
fclose($fh);
$foo = ($tag['foo']);
$bar = ($tag['bar']);
$foo_sum = array_sum($foo);
}
echo $foo_sum;
このコードにより、ページには何も表示されません。array_sum()
関数を削除しecho
てループ内に配置すると、すべてのインスタンスfoo
が表示されますが、ファイルごとに 1 つの数値として表示されます。foo
すべてのs の合計を取得できない原因は何ですか?