1

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

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

echo $data[1];

任何帮助将不胜感激。

4

3 回答 3

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);
于 2012-07-12T15:34:58.647 回答
0

$data[1] 是 $data 变量中的第二个元素($data[0] 将是第一个)。

你得到的是一个数组而不是一个值,这就是 PHP 回显单词数组的原因。

这应该会更好。

$data[0][0]

您的 $data 变量是一个多维数组,您只需要深入一层。

于 2012-07-12T15:36:01.523 回答
0

那是因为 $data[1]CSV 行中 10 个数字的数组,所以 $data 现在是一个多维数组。 echo $data[1][0]将输出其中一个数字

于 2012-07-12T15:36:26.433 回答