1

说 orders.txt 包含

hello
hello
hello

代码:

<?php
  $orders = file("orders.txt");

  $row_count = count($orders);

  for ($row = 0; $row < $row_count; $row++) {
        $col_count = count($orders[$row]);

        for ($col = 0; $col < $col_count; $col++) {
            echo $orders[$row][$col];

        }
  }

?>

我发现这里出错的原因是count($orders[$row])没有返回这个数组中元素的总数。

.txt 中的文本文件是多维数组吗?

如果我创建一个多维数组,我可以使用 count() 获取多维数组中的每个数组元素计数

但这里我从 .txt 文件中读取,我认为它是多维数组

我的问题:

我得到了行数,但没有得到列数。
我知道我可以这样做strlen($orders[$row]),但为什么count($orders[$row])不可能。

4

2 回答 2

0

你想达到什么目的。您的示例 orders.txt 太简单了,您没有指定您期望的结果。file() 返回一个字符串数组,其中每个字符串都是文件中的一行 (http://php.net/manual/en/function.file.php)。

也许如果您尝试从每一行读取多个值(即,将每一行读取为一个数组),您应该改用 fgetcsv() (http://php.net/manual/en/function.file.php)。

于 2012-09-19T09:08:46.847 回答
-1

当我检查 print_r($orders) 时,来自 txt 的数据没有存储在多维数组中,而只是一个带有 key/val 的普通数组。所以你的假设是不正确的。我很难准确理解问题所在(语言障碍......)。您的 col 计数也是正确的,因为里面只有 1 个值(我在这里得到 1 个)。

它可能返回 4(应该是 3),因为您在 txt 文件中有一个额外的换行符,删除最后一个空行,这将是有意义的。

于 2012-09-19T09:06:07.147 回答