2012-01-20 33 views
1

我有下面的代码,我想这取决于标题比较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语句,是这样的:

如果$用品 - >标题=西班牙,print 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

一个例子将是伟大的......我坚持把这个数组作为一个变量传入我的视图...所以如果标题=西班牙 - 回声250 – user991830

+0

你明白了吗? –

+0

brillaint ...所以我可以这样做来匹配csv <?php echo $ pricelist ['$ item-> title']; ?> – user991830

1

要列出所有的价格,只是这样做:

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

要查找某一个国家的价格,这样做:

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

尽管如此,这对大型源文件来说会变慢。