![](/img/trans.png)
[英]Sorting and displaying values systematically from a multi-dimensional PHP array
[英]Displaying data from a CSV file with multi-dimensional PHP 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()提供了无效的参数
提前致谢!
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'];
试试这个:
print_r ($csv[0]['Make']);
基本上$ csv变量是一个数组,要获取其值,您必须使用loop函数,例如:
foreach ($csv as $data) {
foreach ($data as $index => $value) {
if ($index == "make") {
echo $value;
}
}
}
如果您注意到了一点,则将外部数组称为索引数组(带有索引的数组),并使用foreach($ csv作为$ data)遍历值,而将内部数组称为关联数组(此数组不将数字用作索引,但有一个名称),并使用foreach($ data作为$ index => $ value)进行遍历。 尝试一下,您会看到:) PS:抱歉,我没有注意到内部数组,在这种情况下,Richard的答案是正确的。 我为他的回答提供了功劳,因为他给出了正确的答案。
所以我发现我只需要1个foreach循环,就像这样-
foreach($csv as $car){
$type = $car[0];
$echo $type;
}
现在可以工作,感谢大家的帮助!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.