使用多维PHP数组显示CSV文件中的数据

时间:2016-01-28 03:22:38

标签: php arrays csv multidimensional-array

我正在尝试从包含车辆品牌,型号,里程等的CSV文件中提取数据......

在php中使用此示例 -

<?php 
$csv = array_map('str_getcsv', file('csv/csvin.csv'));
array_walk($csv, function(&$a) use ($csv) {
    $a = array_combine($csv[0], $a);
});

array_shift($csv);

foreach($csv as $car){
    foreach($car as $key=>$value){
        echo "<div id='car'>".$key.":".$value."</div></br>";
    }
}
?>

这是我得到的数组 -

BodyStyle:"Station Wagon"

"DaysInStock":"27"

"Make":"Toyota"

"Model":"Prius v"

"MSRP":"0"

"SellingPrice":"26995"

"StockNumber":"387515"

"Trim":"Three"

"VIN":"JTDZN3EU9E3306528"

"Year" :"2014"

现在,当我试图操纵或拉动任何单个值时,我根本无法做到。如何使用HTML标记为每个值显示此信息?

我试过这个:

print_r ($csv[0]['Make']; 
echo $csv[0]['Make'];

只是尝试显示一个值,但仍然没有。我注意到由于某种原因,“BodyStyle”不包含其他类似的引号所以肯定看起来很可疑。

从这里我如何剥离引号并打破每个值?

这是抛出的错误 - 在

中为foreach()提供的参数无效

提前致谢!

3 个答案:

答案 0 :(得分:1)

foreach($csv as $car){
    echo "<tr><td>Make:</td><td>".$car['Make']."</td></tr>";
}

或者:

foreach($csv as $car){
    foreach($car as $key=>$value){
        echo "<tr><td>".$key."</td><td>".$value."</td></tr>";
    }
}

或者:

echo $csv[0]['Make'];

答案 1 :(得分:0)

试试这个:

print_r ($csv[0]['Make']);

基本上$ csv变量是一个数组,要获得它的值,你必须使用循环函数,如:

foreach ($csv as $data) {
    foreach ($data as $index => $value) {
        if ($index == "make") {
            echo $value;
        }
    }
}

如果你注意到一点,外部数组称为索引数组(带索引的数组),并使用foreach遍历值($ csv作为$ data),而内部数组称为关联数组(此数组不使用数字作为索引,但使用名称),并使用foreach遍历它($ data as $ index =&gt; $ value)。 试试吧,你会看到:) PS:对不起,我没有注意到内部阵列,对于这种情况,理查德的答案是正确的。为了给出正确的答案,我已经为他的答案增添了一笔荣誉。

答案 2 :(得分:0)

所以我发现我只需要一个foreach循环 -

inspectionid

立即行动,感谢大家的帮助!