2017-08-21 3 views
-1

私はPHPの初心者です。私はこのようなテキストファイルを持っている:PHPと検索データの連想配列へのテキストファイルデータ

Name-Id-Number 
Abid-01-80 
Sakib-02-76 

私は配列としてデータを取るが、連想配列としてそれを取ることができないことができます。私は次のことをしたい:

  • PHPで連想配列としてデータを取る。
  • IDを使用した検索番号。
  • 私は私はあなたが望むものを理解信じて、それはかなり簡単だ数字
+0

をしてください処理するために、大丈夫だと、あなたのこれまでのところ、私はANS –

答えて

0

の合計をご覧ください。まずファイルをphp配列に読み込む必要があります。

$filedata = file($filename, FILE_IGNORE_NEW_LINES);

今のforeach()ループ、爆発および標準配列の割り当てを使用して、ご希望のアレイを構築する:それはこのような何かを行うことができます。あなたの検索条件は不明ですが、この例では、関連する配列要素を、 'id'と 'num'のキーを持つ連想配列でもある配列にします。

新しい配列を作成するときに、実例のように合計を計算することができます。

<?php 

$filedata = array('Abid-01-80', 'Sakib-02-76'); 

$lineArray = array(); 
$numTotal = 0; 

foreach ($filedata as $line) { 
    $values = explode('-', $line); 
    $numTotal += $values[2]; 
    $lineArray[$values[0]] = array('id' => $values[1], 'num' => $values[2]); 
} 

echo "Total: $numTotal\n\n"; 
var_dump($lineArray); 

することはできsee this code demonstrated here

更新応答:

通知はエラーではないことに注意してください。彼らはあなたのコードがより洗練されているかもしれないが、通常はプロダクションでは抑制されていることを伝えています。

$var += $var以前に初期化の$ VARをせず:あなたが使用しているため

未定義の変数の通知が来ています。この練習であなたは矛盾していたことに注意してください。たとえば、$ numTotalを初期化したので、同じ手法を使用してインクリメントするときに通知を受け取れませんでした。

は単純に$numTotal = 0の下に追加します。

$count = 0; 
$countEighty = 0; 

あなたの他の通知が原因と予想パターンに従っていない、あなたの入力で空白行または列に最も可能性の高い発生しています。 explodeが実行されたときに3要素の配列を返さないので、$values = explode('-', $line);を参照しようとすると、処理する前に$ lineが空の文字列でないことを確認する必要があります。場合{//それはウル必要ANSを与え、

+0

を完了(カウント($値)3 ===)

enter code here:あなたはまた、のような健全性チェックを追加することができますごめんなさい、私の不明な声明。私はここに新しいので、私は慣れるのに時間が必要だと思う。 –

+0

ありがとうございました。テキストファイルの最後に余分な行がありました。私はそれを削除し、今は正常に動作しています。 –

+0

ようこそ。私の答えをupvote&受け入れてください。 – gview