我有以下代码,我试图比较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语句,如:
if $ item-&gt; title = Spain,print 250
但我仍然坚持如何做到这一点。 任何帮助,将不胜感激。 感谢
答案 0 :(得分: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
答案 1 :(得分:1)
要列出所有价格,请执行以下操作:
foreach ($pricelist as $line) {
echo $line[0].": € ".$line[1]."<br />";
}
要查找某个国家/地区的价格,请执行以下操作:
foreach ($pricelist as $line) {
if($line[0] == "Spain") echo $line[1];
}
虽然这对大型源文件来说会变慢。