Вывести совпадение одной записи из массива с помощью php csv - PullRequest
1 голос
/ 20 января 2012

У меня есть следующий код, который я пытаюсь сравнить заголовок в CSV-файле и вернуть соответствующую цену (в CSV) в зависимости от заголовка:

<code><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 '
';?>

Содержимое 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
        )
)

То, что мне теперь нужно сделать, это просто повторить правильную цену, а не

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

Так что мне нужно создать оператор if, например:

if $ item-> title = Spain, напечатать 250

Но я застрял на том, каксделать это.Любая помощь будет оценена.Спасибо

Ответы [ 2 ]

2 голосов
/ 20 января 2012

Я думаю, вы должны проиндексировать свой CSV.

Позвольте привести пример.

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

So

echo $pricelist['Spain']; // Would give 250
1 голос
/ 20 января 2012

Чтобы просмотреть все цены, просто сделайте это:

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

Чтобы найти цену для определенной страны, сделайте следующее:

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

Это замедлится при работе с большими исходными файламихотя.

...