我有以下代码,我正在尝试比较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语句,如下所示:
如果$item->title =西班牙,打印250
但我被困在如何做到这一点上。任何帮助都将不胜感激。谢谢
发布于 2012-01-20 18:20:48
我想你应该给你的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发布于 2012-01-20 18:23:10
要列出所有价格,只需执行以下操作:
foreach ($pricelist as $line) {
echo $line[0].": € ".$line[1]."<br />";
}要查找某个国家/地区的价格,请执行以下操作:
foreach ($pricelist as $line) {
if($line[0] == "Spain") echo $line[1];
}但是,对于大型源文件,这会变得很慢。
https://stackoverflow.com/questions/8939556
复制相似问题