我无法让这个PHP数组为我返回任何值。 CSV表由10个数字组成。我得到的唯一输出是“array
”
$data = array();
if (($handle = fopen("fullbox.csv", "r")) !== FALSE) {
while(($row = fgetcsv($handle, 1000, ",")) !== FALSE) {
$data[] = $row;
}
}
echo $data[1];
非常感谢任何帮助。
答案 0 :(得分:3)
您的代码已经正确无误。
$data
是多维数组,每个元素本身就是一个数组。当您echo $data[1]
时,您要求PHP编写更复杂的数组变量的字符串表示形式,PHP通过输出array
而不是其内容来处理。
相反,var_dump()
可以看到它包含的内容。
var_dump($data);
可通过以下方式访问单个值:
echo $data[1][0];
评论后修改:
如果CSV每行只包含一个值,则在附加到输出数组时直接通过$row[0]
访问它,以便将其作为一维数组:
if (($handle = fopen("fullbox.csv", "r")) !== FALSE) {
while(($row = fgetcsv($handle, 1000, ",")) !== FALSE) {
$data[] = $row[0];
}
}
// $data is now a 1D array.
var_dump($data);
答案 1 :(得分:0)
$ data [1]是$ data变量中的第二个元素($ data [0]将是第一个)。
你得到一个数组而不是一个值,这就是PHP回显单词数组的原因。
这应该会更好。
$data[0][0]
你的$ data变量是一个多维数组,你只有一个深度。
答案 2 :(得分:0)
这是因为$ data [1] 是CSV行中10个数字的数组,所以$ data现在是一个多维数组。 echo $data[1][0]
将输出其中一个数字