【发布时间】:2017-11-13 19:36:14
【问题描述】:
我有一个名为 C.txt 的文本文件。文本文件的内容如下:
名称、BPrice、SPrice、显示
诺基亚 520、20000、21000、1
小米123、15000、17000、0
小米红米, 30000, 32000, 1
我使用以下代码访问了该文件:
<?php
$file = fopen("C.txt", "r");
while(!feof($file)){
$content = fgets($file);
$products[] = $content;
}
var_dump($products);
?>
var_dump($products) 给出输出:
array(4) { [0]=> string(33) "名称, BPrice, SPrice, Display " [1]=> string(29) "诺基亚 520, 20000, 21000, 1 " [2]=> string(29) "小米123, 15000, 17000, 0 " [3]=> string(30) "小米红米, 30000, 32000, 1 " }
我想要做的是将 Name、BPrice、SPrice 和 Display 列和它们的值使用explode() 方法。所以,我尝试了以下方法:
<?php
for($i=1; $i<count($products); $i++){
$contents[] = explode(",", $products[$i]);
}
var_dump($contents);
?>
var_dump($contents) 产生:
array(3) { [0]=> array(4) { [0]=> string(9) "诺基亚 520" [1]=> string(6) " 20000" [2]=> string( 6) " 21000" [3]=> string(5) " 1 " } [1]=> array(4) { [0]=> string(9) "小米123" [1]=> string(6) " 15000" [2]=> 字符串(6) " 17000" [3]=> 字符串(5) " 0 " } [2]=> 数组(4) { [0]=> 字符串(12) "小米红米" [1]=> 字符串(6) " 30000" [2]=> 字符串(6) " 32000" [3]=> 字符串(3) " 1 " } }
注意:我只想访问列的值而不是标题,因此for($i=1; $i<count($products); $i++)
现在这是我面临的问题。如何访问这个二维数组$contents?
我试过foreach loop如下:
foreach ($contents as $key => $value) {
echo $value[$key];
}
但这会导致:
诺基亚 520 15000 32000
我似乎无法弄清楚为什么它不打印其余两行!任何帮助将不胜感激。提前致谢! :)
【问题讨论】:
-
看看
fgetcsv~php.net/manual/en/function.fgetcsv.php
标签: php string file multidimensional-array foreach