将csv附加到php数组


append csv to php array

我无法让这个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变量是一个多维数组,您只需要深入一个级别。