从文本文件读取2D阵列,请帮助!

如何解决从文本文件读取2D阵列,请帮助!

| 更新:我意识到问题是我正在使用print而不是echo来打印数据,因此它显示的是数组而不是其中的数据。谢谢你们! 我目前有一个文本文件,如下所示:
0,0
0,0
我正在使用此功能
function rFile($fileName){
$resultF = fopen($fileName,\"r\") or die(\"can\'t open file\");
$array = array(); //Create the first dimension of a 2D array
$i=0;
while(!feof($resultF)){
  $line = fgets($resultF);
  $line = trim($line,\"\\n\");
  $tokens = explode(\",\",$line);
  $array[$i]=array(); //Create the second dimension of the 2D array
  $tokenCount = sizeof($tokens);
  for($j=0; $j<$tokenCount; $j++){
    $array[$i][$j] = $tokens[$j];
  }
  $i++;
 }
return $array;
  }
本质上,它应该读取文件,将每个\“ 0 \”展开,并将其存储在2D数组$ array中。由于某种原因,它返回以下内容
Array[0]
Array[1]
Array[2]
....etc etc
有人知道我做错了吗?     

解决方法

您将通过使用for循环和计数器来艰难地解决问题。通过使用PHP的
$array[] = $val
附加语法,您可以在此处节省很多工作。
// all the file handling code...

while(!feof($resultF)){
  $line = fgets($resultF);
  $line = trim($line,\"\\n\");
  $tokens = explode(\",\",$line);

  // Append the line array.
  $array[] = $tokens; //Create the second dimension of the 2D array
}

return $array;
或更简洁地说:
$array[] = explode(\",$line);
    ,PHP多维数组只是数组的数组。不需要内部循环。你可以做
while(...) {
   ... fgets stuff
   $array[$i] = explode(\',\',$line);
   $i++;
}
并获得相同的效果。     ,尝试这个 :
function rFile($filename) {
    $lines = file($filename);

    if ($lines !== false) {
        foreach ($lines as & $line) {
            $line = explode(\',trim($line,\'\\n\\r\'));           
        }
    }

    return $lines;
}
    ,
$f = file($fileName);

$results = array();

foreach ($f as $line) {
    $line = preg_replace(\"\\n\",\"\",$line);
    $results[] = explode(\",$line);
}
    ,嗯,因为这是逗号分隔的,所以我们可以使用fgetcsv使其简短而简单:
$file = fopen(\'test.txt\',\'r\');

$matrix = array();
while($entries = fgetcsv($file)) {
  $matrix[] = $entries;
}

fclose($file);
结果数组:
Array
(
    [0] => Array
        (
            [0] => 0
            [1] => 0
            [2] => 0
            [3] => 0
            [4] => 0
        )

    [1] => Array
        (
            [0] => 0
            [1] => 0
            [2] => 0
            [3] => 0
            [4] => 0
        )

    [2] => Array
        (
            [0] => 0
            [1] => 0
            [2] => 0
            [3] => 0
            [4] => 0
        )

    [3] => Array
        (
            [0] => 0
            [1] => 0
            [2] => 0
            [3] => 0
            [4] => 0
        )

    [4] => Array
        (
            [0] => 0
            [1] => 0
            [2] => 0
            [3] => 0
            [4] => 0
        )

)
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?