CSVテキストでforeachによる次の行の値を取得し、計算し表示したいのですがわかりません。
どなたか処理の仕方をアドバイスを下さい。
・csvの内容
2012,20,山田,奈良(1行目)
2012,15,川上,東京(2行目)
2013,10,山本,北海道(3行目)
・処理
$lines = @file($logfile);
foreach ($lines as $value){
list($value01,$value02,$value03,$value04)= explode(",", trim($value));
echo "表示: $value01 $value02 $value03 $value04";
*ここで処理:この行の$value02と次の行の$value02を比較計算した値を表示
}
No.1ベストアンサー
- 回答日時:
foreachでやるなら、「現在の行を処理して次の行と比較」ではなく「前の行を処理して現在の行と比較」にすればいいんじゃないですかね。
$lines = @file($logfile);
$prev = '';
foreach ($lines as $value){
if ($prev !== '') {
list($value01,$value02,$value03,$value04)= explode(",", trim($prev));
echo "表示: $value01 $value02 $value03 $value04";
list($value01w,$value02w,$value03w,$value04w)= explode(",", trim($value));
// $value02 と $value02w を比較計算
}
$prev = $value;
}
if ($prev !== '') {
list($value01,$value02,$value03,$value04)= explode(",", trim($prev));
echo "表示: $value01 $value02 $value03 $value04";
}
fileで読んでいますから(数字添え字だし要素数も既知なので)foreachでなくforで回してもいいかもしれません。そうすれば(最大添え字を超えない範囲で)添え字+1を参照すればいいかと。
No.2
- 回答日時:
next()やcurrent()がつかえるかも
ただし最終行の処理が必要
foreach($lines as $value){
list($value01,$value02,$value03,$value04)= explode(",", trim($value));
echo "表示1: {$value01} {$value02} {$value03} {$value04}<br>";
if(next($lines)!==false){
list($value01,$value02,$value03,$value04)= explode(",", trim(current($lines)));
echo "表示2: {$value01} {$value02} {$value03} {$value04}<br>";
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- Visual Basic(VBA) 配列の勉強をしています。使用する変数の意味、検索条件の書き方が難しいです。 2 2022/09/15 14:06
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 4 2023/05/26 10:43
- Visual Basic(VBA) 検索のユーザーフォームの表示について 1 2023/03/27 23:31
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
- Visual Basic(VBA) VBAでのループ順序について 3 2023/03/13 10:55
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プルダウンとCSVの連動
-
php セレクトボックス 値取得
-
<select>文、foreachと初期値設定
-
2つのプルダウンメニュから受け...
-
複数 selectフォームから今回on...
-
input type="hidden"で送る値を...
-
mysql データ登録
-
頭文字→大学→学部を選択する入...
-
MySQLのレコードを検索、...
-
submitして確認画面へ
-
複数のセレクトボックスを1つに...
-
複数のセレクトボックスで
-
連動させたいセレクトボックス...
-
phpで重複チェック
-
フォームでのリセットを使う方法
-
PHP ボタンが押されたら処理を...
-
フォーム送信後の更新ボタンで...
-
ラジオボタンをsessionで使いたい
-
HTMLで前の画面に戻る時、入力...
-
検索時の選択内容を保持する方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プルダウンとCSVの連動
-
「"」(ダブルクォーテーション)...
-
ラジオボタンの値を受け取ってP...
-
<select>文、foreachと初期値設定
-
phpでのセレクトボックスの値を...
-
php セレクトボックス 値取得
-
複数のセレクトボックスを1つに...
-
複数 selectフォームから今回on...
-
2つのプルダウンメニュから受け...
-
phpでのselect値の取得・表記に...
-
foreachで次の行の値を取得して...
-
ウェブ上で選択した複数行の内...
-
CodeIgniter/set_value()
-
ループ処理
-
連動させたいセレクトボックス...
-
現在時刻を反映させた時刻のプ...
-
プルダウンリスト(コンボボッ...
-
PHP で画面の一部だけを変えたい。
-
phpでカレンダー作成
-
プルダウンで選択された値を保持
おすすめ情報