首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用php csv打印数组中的单个条目匹配

使用php csv打印数组中的单个条目匹配
EN

Stack Overflow用户
提问于 2012-01-20 17:57:38
回答 2查看 322关注 0票数 1

我有以下代码,我正在尝试比较csv文件中的标题,并根据标题拉回适当的价格(在csv中):

代码语言:javascript
复制
<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内容:

代码语言:javascript
复制
Spain, 250
France, 350
Germany, 150

(城镇/头衔,价格)

这将从我的csv返回以下数组:

代码语言:javascript
复制
Array
(
    [0] => Array
        (
            [0] => Spain
            [1] =>  250
        )
    [1] => Array
        (
            [0] => France
            [1] =>  350
        )
    [2] => Array
        (
            [0] => Germany
            [1] =>  150
        )
)

我现在需要做的就是回应正确的价格,而不是

代码语言:javascript
复制
echo '<pre>'; print_r($pricelist); echo '</pre>';

所以我需要创建一个if语句,如下所示:

如果$item->title =西班牙,打印250

但我被困在如何做到这一点上。任何帮助都将不胜感激。谢谢

EN

回答 2

Stack Overflow用户

发布于 2012-01-20 18:20:48

我想你应该给你的CSV加索引。

让我给你举个例子。

代码语言:javascript
复制
$pricelist = array();
if (($handle = fopen("townprices.csv", "r")) !== FALSE) {
  while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    $pricelist[$data[0]] = $data[1];
  }
  fclose($handle);
}

所以

代码语言:javascript
复制
echo $pricelist['Spain']; // Would give 250
票数 2
EN

Stack Overflow用户

发布于 2012-01-20 18:23:10

要列出所有价格,只需执行以下操作:

代码语言:javascript
复制
foreach ($pricelist as $line) {
    echo $line[0].": &euro; ".$line[1]."<br />";
}

要查找某个国家/地区的价格,请执行以下操作:

代码语言:javascript
复制
foreach ($pricelist as $line) {
    if($line[0] == "Spain") echo $line[1];
}

但是,对于大型源文件,这会变得很慢。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8939556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档