簡體   English   中英

將一維數組轉換為二維數組PHP

[英]Converting 1D array to 2D array PHP

我目前有一個文本文件,如下所示:

0000001
0000002
0000003
0000004
0000005
0000006....

我正在使用下面的代碼將一維數組轉換為二維。

$filename  = "surface.txt";
$fp = fopen($filename, "r");
while(!feof($fp)) {  
     $content = fread($fp, filesize($filename));
     $lines = explode("\n", $content);
   for ($i=0; $i<=$row; $i++){
   for ($j =0; $j<=$col; $j++){
      //echo $lines[$i*$col + $j]; 
      $matrix[$i][$j] = $lines[$i*$col + $j];
      //var_dump($matrix[i][j]); 
     }
    }
   }
 fclose($fp);

我的輸出數組$ matrix打印所有NULL值。我將var_dump()放入循環中以查看其顯示內容。有趣的是,它正在讀取所有值,但是在最后一個值之后,它也繼續讀取空值,從而使$ matrix最后變為空(NULL)。 我不知道如何解決這個問題。 如果我不清楚解釋輸出的方式,請在下面查看。

Array ( [0] => Array ( [0] => 0000001 ) )
Array ( [0] => Array ( [0] => 0000002 [1] => 0000002 ) )
Array ( [0] => Array ( [0] => 0000001 [1] => 0000002 [2] => 0000003 ) )

在最后幾行中,我看到輸出如下

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

任何幫助都將受到高度贊賞。

<?php
//asuming $row and $col are defined
//$row=5;
//$col=5;


$filename  = "surface.txt";

     $content = file_get_contents($filename);
     $lines=explode("\n",$content);
foreach ($lines as $rowNum=>$r)
{
$r=str_split($r);
if ($rowNum+1>$row)
break;    
if ($r===[""])
continue;
while (count($r)>$col)
{
array_pop($r);
}
$matrix[]=$r;
}
var_dump($matrix);

這就是我的工作方式

  $filename="surface.txt"
 $fp = fopen($filename, "r");
 $content = fread($fp, filesize($filename));
 $lines = explode("\n", $content);
 for ($i=0; $i<$row; $i++){
 for ($j =0; $j<$col; $j++){

  $matrix[$i][$j] = $lines[$i*$col + $j];
 }
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM