2012-01-20 21 views
1

I持って、私はタイトルによっては(CSVで)適切な価格を引き戻す& csvファイルでタイトルを比較しようとしています次のコード:印刷単一のエントリが一致し

<a class="Title" href="<?php echo $item->link;?>"> 
    <?php echo $item->title;?> <!--country title--> 
</a> 
<?php 
     $pricelist = array(); 
     if (($handle = fopen("townprices.csv", "r")) !== FALSE) 
     { 
      while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) 
      { 
      $pricelist[] = $data; 
      } 
      fclose($handle); 
     } 
     echo '<pre>'; print_r($pricelist); echo '</pre>'; 
?> 

CSV内容:

Spain, 250 
France, 350 
Germany, 150 

(町/タイトル、価格)

この私のcsvファイルから次の配列を戻す:

私が今行う必要がある何
Array 
(
    [0] => Array 
     (
      [0] => Spain 
      [1] => 250 
     ) 
    [1] => Array 
     (
      [0] => France 
      [1] => 350 
     ) 
    [2] => Array 
     (
      [0] => Germany 
      [1] => 150 
     ) 
) 

だけではなく

echo '<pre>'; print_r($pricelist); echo '</pre>'; 

よりも、適切な価格をエコーされたので、私はif文のようなものを作成する必要があります:$アイテム - >タイトル場合

を=スペイン、印刷250

しかし、私はこれを行う方法に固執しています。 ご協力いただければ幸いです。 ありがとう

+0

'foreach($ pricelist as $ value){...}'? – J0HN

答えて

2

あなたのCSVのインデックスを作成する必要があります。

例を挙げておきます。

$pricelist = array(); 
if (($handle = fopen("townprices.csv", "r")) !== FALSE) { 
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
    $pricelist[$data[0]] = $data[1]; 
    } 
    fclose($handle); 
} 

ので

echo $pricelist['Spain']; // Would give 250 
+0

例が素晴らしいです...私はこの配列を私のビューに変数として渡すことに固執しています...もしtitle = Spain - echo 250 – user991830

+0

あなたはアイデアを得ますか? –

+0

brillaint ...これは、CSV で国と一致するようにすることができますか?<?php echo $ pricelist ['$ item-> title']; ?> – user991830

1

だけでこれを行う、すべての価格を一覧表示するには:

foreach ($pricelist as $line) { 
    if($line[0] == "Spain") echo $line[1]; 
} 

:これを行う、特定の国のために価格を確認するには

foreach ($pricelist as $line) { 
    echo $line[0].": &euro; ".$line[1]."<br />"; 
} 

をしかし、これは大きなソースファイルでは遅くなります。

関連する問題