【发布时间】:2017-08-12 06:14:14
【问题描述】:
我知道答案可能很简单,但很难让它发挥作用。我有以下代码
}
$csv = array();
// Open File with error handler
if (($file = fopen('./csv/file.csv', 'r')) === false) {
throw new Exception('There was an error loading the CSV file.');
}
else {
while (($line = fgetcsv($file, 1000)) !== false) {
$csv[] = $line;}
fclose($file);}
if (isset($_GET['names'])) {
$name = $_GET['names'];
$results = array();
foreach($csv as $curr) {
$Data = explode(',',$curr['1']);
if(in_array($names,$Data)
$results[] = $curr;
}
} else {
...... Blah blah blah
?>
所以我想要做的是使用 get 解析来自 url 的数据并搜索 csv 数组以在每个键和数组 [1](它是一个 2 列 csv 文件)中找到匹配的字符串,如果名称匹配它得到来自 csv[0] 的值并存储在数组中,以便我可以将其打印到屏幕上。因为我没有在我的数组中得到匹配的字符串而丢失了。我哪里出错了有什么帮助吗?
Csv 文件示例:
Charlie and the chocolate factory, Ronald Dahl
Hunger games, Suzanne Collins
ect
所以我想做的是解析来自 url ?name=Suzanne,%20Collins 的数据来搜索我的 csv 数组。所以它会选择 suzanne collins 的所有书籍并将值放入我的数组中。
【问题讨论】:
-
当您使用
fgetcsv时,您可能不需要使用$Data = explode(',',$curr['1']);。如果您在问题中包含 CSV 文件中的一两行,也会很有帮助。 -
嘿 Nigel,我一直在寻找使用以下代码作为另一种方式: $books = array_keys($csv[1], $name1);过滤掉那么多字符串的书,但它没有将值解析为数组。
标签: php arrays html csv foreach