我无法让这个PHP数组为我返回任何值。CSV表由10个数字组成。我得到的唯一输出是"array
"
$data = array();
if (($handle = fopen("fullbox.csv", "r")) !== FALSE) {
while(($row = fgetcsv($handle, 1000, ",")) !== FALSE) {
$data[] = $row;
}
}
echo $data[1];
如有任何帮助,我们将不胜感激。
您的代码已经是正确的。
$data
是多维数组,每个元素本身就是一个数组。当echo $data[1]
时,您要求PHP编写一个更复杂的数组变量的字符串表示,PHP通过输出array
而不是其内容来处理该变量。
相反,var_dump()
查看它包含的内容。
var_dump($data);
一个值可以通过以下方式访问:
echo $data[1][0];
评论后编辑:
如果CSV每行只包含一个值,则在附加到输出数组时通过$row[0]
直接访问它,以便将其作为1D数组:
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);
这是因为$data[1]是CSV行中10个数字的数组,所以$data现在是一个多维数组。echo $data[1][0]
将输出其中一个数字
$data[1]是$data变量中的第二个元素($data[0]将是第一个)。
您得到的是一个数组,而不是一个值,这就是PHP回显单词array的原因。
这应该效果更好。
$data[0][0]
$data变量是一个多维数组,您只需要深入一个级别。