将csv附加到php数组

时间:2012-07-12 15:33:05

标签: php arrays

我无法让这个PHP数组为我返回任何值。 CSV表由10个数字组成。我得到的唯一输出是“array

$data = array();
if (($handle = fopen("fullbox.csv", "r")) !== FALSE) {
    while(($row = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $data[] = $row;
    }
}

echo $data[1];

非常感谢任何帮助。

3 个答案:

答案 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]将输出其中一个数字